Redis源码解析——持久化机制

Redis有两种持久化机制:rdb持久化以及aof持久化。默认使用rdb持久化方式。
一、rdb持久化
即在指定的时间间隔内将内存中的数据集进行快照并保存在磁盘当中。用户可以复制该磁盘文件到其他redis服务器中以创建相同的服务器副本。
rdb持久化会生成rdb文件。该文件为 压缩过的二进制文件。rdb文件默认为当前工作目录下的dump.rdb。 可在配置文件中的dbfilename和dir来更改默认的文件名和保存路径。
触发rdb持久化:
1)可在client中输入save或者bgsave命令触发rdb持久化。其中:
  • save命令会阻塞redis进程。
  • bgsave命令会fork一个子进程,然后该子进程负责创建和写入rdb文件。
2)配置文件中配置save <second> <changes>指在second秒内发生changes次变化,则执行bgsave。
3)执行flushall命令清空服务器数据时触发
4)执行shutdown命令关闭redis时会触发执行save命令。
在执行bgsave命令期间:
  • 客户端的save、bgsave命令会被拒绝,防止两次rdbsave调用产生竞争。
  • bgrewriteaof命令会被延迟到bgsave命令执行完毕之后执行。
  • 如果bgrewriteaof命令在执行,bgsave命令会被拒绝
dirty计数器和last save属性
  • dirty计数器记录距离上一次成功执行SAVE命令或者BGSAVE命令之后,服务器对数据库状态(服务器中的所有数据库)进行了多少次修改(包括写入、删除、更新等操作)
  • lastsave属性是一个UNIX时间戳,记录了服务器上一次成功执行SAVE命令或者BGSAVE命令的时间。
RDB的间隔性保存就通过这两个属性来判断是否满足条件。
二、AOF持久化
AOF持久化默认不开启
AOF持久化记录Redis的写操作,并将这些操作写入到AOF文件中持久化。
AOF配置:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值