redis持久化策略
1、数据文件.rdb
2、更新日志.aof
设置aof
1、命令方式
config set appendonly no
config rewrite
2、配置文件方式
redis持久化机制
当满足持久化策略时,做rdb的持久化
当不满足持久化策略时,以aof日志的方式保存下来。当服务器重启时,加载rdb和aof做并集处理。aof效率高,因为它只是文本写入;rdb还有其它的操作。
测试
exit是客户端自己退出;shutdown是退出redis服务,不过使用shutdown退出会把数据保存到rdb。
在虚拟机直接关闭该计算机,或者使用 debug segfault 关闭redis,才可以测试aof。
手动持久化
save | bgsave 保存到磁盘文件dump.rdb,bgsave是后台保存,不会阻塞当前线程
save 由主进程完成,bgsave由另外一个进程完成
aof文件体积优化
BgRewriteAof 异步执行aof文件重写操作,会创建一个当前aof文件的体积优化版本
[root@localhost redis]# ls -lh appendonly.aof
-rw-r--r--. 1 root root 0 8月 30 01:01 appendonly.aof
127.0.0.1:6379> set name zhangrunwei
OK
[root@localhost redis]# ls -lh appendonly.aof
-rw-r--r--. 1 root root 64 8月 30 01:03 appendonly.aof
127.0.0.1:6379> set age 18
OK
[root@localhost redis]# ls -lh appendonly.aof
-rw-r--r--. 1 root root 94 8月 30 01:03 appendonly.aof
127.0.0.1:6379> flushdb
OK
[root@localhost redis]# ls -lh appendonly.aof
-rw-r--r--. 1 root root 111 8月 30 01:04 appendonly.aof
127.0.0.1:6379> BgRewriteAof
Background append only file rewriting started
[root@localhost redis]# ls -lh appendonly.aof
-rw-r--r--. 1 root root 0 8月 30 01:05 appendonly.aof