码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis的持久化机制


    一、Redis的持久化机制实现及原理

    Redis的强劲性能很大程度上是由于它所有的数据都存储在内存中,当然如果redis重启或者服务器故障导致redis重启,所有存储在内存中的数据就会丢失。但是在某些情况下,我们希望Redis在重启后能够保证数据不会丢失。

    1. 将redis作为nosql数据库使用。
    2. 将Redis作为高效缓存服务器,缓存被击穿后对后端数据库层面的瞬时压力是特别大的,所有缓存同时失效可能会导致雪崩。

    这时我们希望Redis能将数据从内存中以某种形式同步到硬盘上,使得重启后可以根据硬盘中的记录来恢复数据。Redis支持两种方式的持久化,一种是RDB方式、另一种是AOF(append-only-file)方式,两种持久化方式可以单独使用其中一种,也可以将这两种方式结合使用。

    • RDB:根据指定的规则“定时”将内存中的数据存储在硬盘上。
    • AOF:每次执行命令后将命令本身记录下来。

    二、RDB模式

    RDB的持久化方式是通过快照(snapshotting)完成的,它是Redis默认的持久化方式,配置如下。

    # save 3600 1
    # save 300 100
    # save 60 10000
    
    • 1
    • 2
    • 3

    Redis允许用户自定义快照条件,当符合快照条件时,Redis会自动执行快照操作。快照的条件可以由用户在配置文件中配置。配置格式如下

    save <seconds> <changes>
    
    • 1

    第一个参数是时间窗口,第二个是键的个数,也就是说,在第一个时间参数配置范围内被更改的键的个数大于后面的changes时,即符合快照条件。当触发条件时,Redis会自动将内存中的数据生成一份副本并存储在磁盘上,这个过程称之为“快照”,除了上述规则之外,还有以下几种方式生成快照。

    1. 根据配置规则进行自动快照
    2. 用户执行SAVE或者GBSAVE命令
    3. 执行FLUSHALL命令
    4. 执行复制(replication)时

    2.1 根据配置规则进行自动快照

    修改redis.conf文件,表示5秒内,有一个key发生变化,就会生成rdb文件。

    save 5 1        # 表示5s以内至少发生1个key变化(新增、修改、删除),则重写rdb文件
    save 300 100
    save 60 10000
    
    • 1
    • 2
    • 3

    修改文件存储路径

    dir /data/program/redis/bin
    
    • 1

    其他参数配置说明
    在这里插入图片描述
    如果需要关闭RDB的持久化机制,可以参考如下配置,开启 save ,并注释其他规则即可

    save ""
    #save 900 1
    #save 300 10
    #save 60 10000
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    对“Linux中遇到的RAID阵列”好好总结一次
    java毕业设计某日杂商店进销存管理系统设计源码+lw文档+mybatis+系统+mysql数据库+调试
    使用注解读取properties配置文件
    第一百零五篇:变量的原始值和引用值
    mac 本地运行 http-proxy-middleware ,请求超时
    问题:anaconda的bin和envs目录莫名奇妙消失!
    虹科ELPRO - EMS系统实现苏州某医药仓库温湿度自动监测 - 100% GxP合规
    Redis——分布式缓存
    Rust入门教程(五):错误处理
    C++ 基础与深度分析 Chapter11 类与面向对象编程(构造函数:缺省、单一、拷贝、移动、赋值)
  • 原文地址:https://blog.csdn.net/qq_37325859/article/details/125545252
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号