一、rdb持久化和aof持久化
rdb:类似于快照,当前内存里的数据持久化到硬盘
优点:压缩格式、恢复速度快
缺点:不是实时的,可能会丢数据,操作比较重量
aof:类似于mysql的binlog,可以设置成美妙/每次操作都难以追加的形式保存在日志文件中
优点:安全,最多只损失1秒的数据,具备一定的可读性
缺点:文件比较大,恢复速度慢
二、配置rdb持久化
save 900 1
save 300 10
save 60 10000
dbfilename redis.rdb
dir /data/redis_6379/
三、rdb持久化结论
没配置save参数时
shutdown/pkill/kill都不会持久化保存
可以手动执行bgsave
配置save参数时
shutdown/pkill/kill均会自动触发bgsave持久化保存数据
pkill -9 不会触发持久化
原理:相当于在程序关闭的瞬间,手动执行了一次bgsave
恢复时:持久化数据文件名要和配置文件里定义的一样才能被识别
rdb文件只有一个数据文件,迁移和备份只要这一个rdb文件
注意:rdb 高版本兼容低版本,低版本不能兼容高版本
四、aof持久化配置
appendonly yes
appendfilename "redis.aof"
appendfsync everysec
五、当aof和rdb同时存在的时候,redis会读取aof的内容
六、aof相对比较安全,最多丢失1秒的数据
七、如果设置了过期时间,恢复数据会如何处理?
aof文件会记录下过期时间,以unix时间戳形式
恢复的时候会去对比过期时间和当前时间,如果超过了,就删除key
key的过期时间不受备份影响
八、aof和rdb如何选择
开启混合模式
开启aof
不开启rdb
rdb采用定时任务的方式备份
可以从库开启rdb进行备份
0 Comments