Redis 持久化

RDB (Redis Database)
rdb保存的文件时dump.rdb 在配置文件中的快照文件中配置
保存规则
生产环境需要备份,主从复制中 rdb就是备用的

# 如果900秒内有至少一次修改操作,则保存
save 900 1
#
save 300 10
save 60 100000

触发机制

  • save 的规则满足的情况下,会自动出发rdb规则
  • 执行flushall命令,触发rdb规则
  • 退出Redis,也会产生rdb文件

恢复rdb文件
1、只需要将rdb文件放在Redis启动目录就可以,redis启动的时候会自动检查dump.rdb恢复其中的数据
2、获取redis的启动目录
config get dir # 得到目录,如果在目录下存在dump.rdb,启动时会自动恢复rdb的数据

优点:
1、大规模的数据恢复!
2、如果你对数据的完整性要求不高
缺点:
1、需要一定的时间间隔,如果redis意外宕机了,最后一次的修改数据就没了
2、fork进程的时候,会占用一定的内容空间

flushall # 清空所有,默认产生rdb文件
set k1 v1
set k2 v2
set k3 v3
set k4 v4
set k5 v5

AOF (Append Only File)
将我们的所有命令都记录下来,恢复的时候,将全部的文件都执行一遍
以日志的形式记录每一个写操作,将Redis执行的所有指令记录下来(读操作不记录),只追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次,从而完成数据的恢复
aof 保存的是appendonly.aof

appendonly no # 默认是不开启的,需要手动配置
# 触发规则
appendfsync everysec #默认每秒同步一次,可能会丢失这一秒的数据
appendfsync always # 每次修改都会sync,消耗性能
appendfsync no # 不执行sync,这个时候操作系统自己同步数据,速度最快

#重写参数
# aof 默认文件的无线追加,aof就会无线变大
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb # 如果一个aof文件大于64MB,就会fork一个新的进程进行重写

appendonly.aof 如果有问题,则无法启动redis,如果文件正常,则可以正常启动
redis目录下面存在两个工具文件

修复rdb文件
redis-check-rdb 
# 修复aof文件,会丢失数据,恢复都允许容错
redis-check-aof --fix appendonly.aof

优点:

  • 每一次修改都同步,文件的完整性会更好
  • 每秒同步一次,可能会丢失一秒的数据
  • 从不同步,效率最高

缺点:

  • 相对于数据文件来说,aof远远大于rdb,修复的速度比rdb慢
  • aof运行效率也要比rdb慢(存在IO操作),所以我们redis默认的配置就是rdb持久化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值