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