Redis持久化机制

Redis持久化机制

一、持久化的方式

  1. RDB持久化。

    RDB持久化方式能够在指定的时间间隔对你的数据进行快照存储。

  2. AOF(append only file)持久化。

    AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会更新执行这些命令来恢复原始的数据。

二、RDB方式

  1. 客户端直接通过命令BGSAVE或SAVE来创建一个内存快照。

    • BGSAVE调用fork来创建一个子进程,子进程负责将快照写入磁盘,而父进程仍然继续处理命令。
    • SAVE执行SAVE命令的过程中,不再响应其他命令。
  2. 在redis.conf中调整save配置选项,当在规定的时间内,Redis发生了写操作的个数满足条件会触发发生BGSAVE命令。

    save 900 1 在900秒检查周期内至少一次写操作。

    save 300 10 300秒检查周期内至少发生10次写操作。

    save 60 10000 60秒检查周期内发生至少10000次写操作。

  3. 优缺点。

    优点缺点
    对性能影响最小同步时丢失数据
    RDB文件进行数据恢复比使用AOF要快得多如果数据集非常大且CPU不够强(比如单核CPU),Redis在fork子进程时可能会消耗相对较长的时间,影响Redis对外提供服务的能力。

三、AOF持久化方式

  1. 开启AOF持久化。

    appendonly yes

  2. AOF策略调整。

    appendfsync always 每次有数据修改发生时都会写入AOF文件。

    appendfsync everysec 每秒钟同步一次,该策略为AOF的缺省策略。

    appendfsync no 从不同步,高效但是数据不会被持久化。

  3. 优缺点。

    优点缺点
    最安全文件体积大
    容灾性能消耗比RDB高
    易读,可修改数据恢复速度比RDB慢

四、演示

  1. RDB操作演示:

    • 修改redis.conf配置文件,将默认的RDB策略修改为save 3 2,次配置代表如果在每隔3秒的查询周期内,共发生2次数据操作,则进行快照存储。

    • 进行两次数据操作。
      在这里插入图片描述

    • 我们执行一条set c 1命令后,模拟redis故障,插死redsi server后,重新启动。

      在这里插入图片描述
      此时会丢失数据,但是如果是正常的关闭,redis在关闭时会将数据落盘。

  2. AOF操作演示:

    • 开启AOF。

      在这里插入图片描述

    • 运行set a 1, set b 1命令。

    • 生成appendonly_6379.aof,其中记录了我们的每次操作。

      在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值