一、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进行备份

Categories: 数据库

0 Comments

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注