Redis持久化

Redis持久化有两种方式:

rdb快照配置选项:

以下三个选项都屏蔽,则rdb禁用;

配置 说明
save 900 1 900内,有1条写入,则产生快照
save 300 1000 300秒内有1000次写入,则产生快照
save 60 10000 60秒内有10000次写入,则产生快照
stop-writes-on-bgsave-error yes 后台备份进程出错时,主进程停不停止写入
rdbcompression yes 导出的rdb文件是否压缩
rdbchecksum yes 导入rdb恢复数据时,要不要检查rdb的完整性
dbfilename dump.rdb 导出来的rdb文件名
dir ./ rdb的放置路径

aof日志配置:

配置 说明
appendonly no 是否打开aof日志功能
appendfsync always 每一个命令,都立即同步到aof,安全、速度慢
appendfsync everysec 折中方案,每秒写1次
appendfsync no 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof,同步频率低,速度快
no-appendfsync-on-rewrite yes 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb aof文件,至少超过64M时,重写

rdb与aof关联及区别

  1. 在dump rdb过程中,aof停止同步时,命令操作会缓存在内存队列里,dump完成后,统一持久化到aof;
  2. aof重写指把内存中的数据逆化成命令,写入到aof日志里,用来解决aof日志过大问题;
  3. 如果rdb文件和aof文件都存在,redis会有限使用aof恢复数据;
  4. rdb和aof建议同时使用,确保数据安全;
  5. 两种恢复方式,rdb恢复较快,因为其是数据的内存映射,而aof是命令,需要逐条执行;
  6. 如果需要拷贝一台redis数据,可以直接通过拷贝dump.rdb文件,拷贝时需要关闭redis服务,防止数据不一致。

你可能感兴趣的:(redis,持久化,RDB,AOF)