• redis持久化之RDB


    1. 什么是RDB:

    RDB(Redis DataBase):RDB 持久性以指定的时间间隔执行数据集的时间点快照。
    说人话:实现类似照片记录效果的方式,把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照,恢复时再将硬盘快照文件直接读回到内存里。
    这样一来,即使故障宕机,快照文件也不会丢失,数据的可靠性也就得到了保证。这个快照文件就称为RDB文件(dump.rdb)。

    2. 修改配置文件:

    2.1 查询redis7原始配置文件:

    要注意的一点是redis7相比于redis6在快照的时间间隔上和修改频次是变化较大的

    2.2 将时间间隔和频次修改为5秒2次:

    2.3 修改rdb文件的保存路径已经文件名(方便自己查找):

    默认路径为:/usr/local/redis

    修改为:

    注意:这里修改路径可能会出现问题:


    解决方法是dir /myredis/dumpfiles 改成 dir ./myredis/dumpfiles

    默认文件名:

    修改为:

    修改成功:

    3. 触发备份:

    3.1 自动触发:

    5秒钟修改2次自动触发(两个条件都要满足,即时间间隔大于等于5秒,修改次数大于等于2次

    3.2 备份恢复:

    在启动服务时,redis自动根据rdb文件进行备份。
    有两种特殊情况,当执行flushall/flushdb(这种情况生成的rdb文件即为空,没有意义)或者退出客户端,redis自动会生成一个当下最新的rdb文件。
    具体实践参考https://www.bilibili.com/video/BV13R4y1v7sP?p=31&vd_source=a579082d717747b1e99fe189207e7c29

    注意:不可以把备份文件dump.rdb和生产redis服务器放在同一台机器,必须分开各自存储,以防生产机物理损坏后备份文件也挂了。
    3.3 手动触发:
    两个命令:save(线上生产禁用)和bgsave(默认)

    save在主程序中执行会阻塞当前redis服务器直到持久化工作完成,执行save命令期间,redis不能处理其他命令,非常严重的问题,线上禁止使用
    bgsave命令会在后台异步进行快照操作,这个操作是fork(即产生一个和父进程完全相同的子进程)出一个子进程在后台完成的不阻塞,快照同时还可以响应客户端请求。

    4. RDB的优势与缺点:

    4.1 优势:

    1)适合大规模的数据恢复
    2)适合按照业务定时备份
    3)对数据完整性和一致性不高
    4)RDB文件在内存中的加载速度比AOF快得多

    4.2 缺点:

    1)在一定时间间隔内做备份,如果redis意外发生宕机,如断电,则会丢失当前至最近一次快照之间的数据
    具体实践参考https://www.bilibili.com/video/BV13R4y1v7sP?p=33&vd_source=a579082d717747b1e99fe189207e7c29
    2)RDB需要经常fork出一个子进程在磁盘上持久化,如果数据量很大则会导致I/O严重影响服务器性能

    5. 检查修复dump.rdb文件:

    在rdb文件迁移或者写入过程中都有可能发生数据损坏,这些数据损坏很可能使整个rdb文件不可用,所以需要尝试检查并修复。
    先进入/usr/local/redis/bin,使用里面的redis-check-rdb进行rdb文件检查修复:

    修复成功:

    如果修复不了,那只能自认倒霉了。。。

    6. RDB快照禁用:

    1)redis-cli set save ""
    2) 修改配置文件:save 5 2 --> save "" (推荐)

  • 相关阅读:
    2023/9/30 使用消息队列完成进程间通信
    力扣-303.区域和检索-数组不可变
    java毕业设计校园商铺mybatis+源码+调试部署+系统+数据库+lw
    如何轻松做好设备巡检管理?
    matebook14安装vmware导致多屏协同失败
    转:关于征集第三批工业软件新场景新技术难题解决思路的公告
    7-143 降价提醒机器人
    win10 任务栏预览设置为列表效果
    详细指南:基于差分进化的马尔可夫链蒙特卡罗加速技术在MATLAB中的应用
    python 基础知识(面向对象)
  • 原文地址:https://www.cnblogs.com/chaodahao/p/17393777.html