redis的持久化
redis的持久化方式
- RDB - 默认
快照 - 将redis当前瞬间的内存结构记录并且保存到硬盘上
- aof - 默认关闭
(append only file) - 记录所有redis执行的写命令, 当需要回复数据时, 重放这些写命令
相关配置
快照的相关的命令
save - 手动执行一个前台快照, 由当前主线程执行快照, 在快照的过程当中, 不能执行任何命令
bgsave - 手动执行一个后台快照, 会开启一个新的线程进行快照操作, 但是开发者没办法获得快照的结果
配置
快照的执行频率, 相当于没多少秒执行一次
save 900 1
save 300 10
save 60 10000当bgsave错误时, 前台是否需要停止写入操作
stop-writes-on-bgsave-errors yes配置快照文件的名字
dbfilename dump.rdb配置是否开启aof
appendonly no - 默认关闭配置aof的文件名称
appendfsync always - 没执行一个写命令, 就记录一次
appendfsync everysec - 默认行为, 每秒记录当前这一秒所有的写命令
appendfsync no - 根据操作系统的配置决定什么时候执行配置aof文件的重写的策略
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
AOF文件的优化策略:
aof文件实际上会有很多无意义的写操作, 比如添加一个数据后又删除该数据, 因此需要对aof文件进行优化, 这个可以用重写命令.
Bgrewriteaof命令 - 手动触发后台对aof文件的重写, 重写后会得到一个体积优化版, reids会自动的触发aof文件重写.
快照和aof的选择策略
1、开发工程中, aof往往比快照更安全, AOF最多会丢失1s以内的数据
2、redis服务开启后, 先根据AOF文件恢复数据,再恢复快照的数据
3、当数据量很大时, 快照恢复的速度要快与AOF
4、如果希望数据相对更安全, 官方推荐同时开启快照和AOF, 但是仍然不能保证数据的绝对安全
5、如果redis仅仅只是作为分布式缓存服务器使用, 快照和AOF都可以关闭