1,关闭服务或者杀掉进程测试数据是否丢失
关闭RDB持久化,启动AOF持久化,重启复述,服务。
设置值
127.0.0.1:6379>mset k1 v1 k2 v2
好
127.0.0.1:6379>键*
1)“k2”
2)“k1”
127.0.0.1:6379>得到k1
“v1”127.0.0.1:6379>得到k2
“v2”
关闭服务
127.0.0.1:6379>关闭
启动复述,服务
查看数据还在
redis-cli——Redis2019 !
警告:使用一个密码'——'选项在命令行界面可能不安全。
127.0.0.1:6379>键*
1)“k2”
2)“k1”
杀掉复述,进程,启动复述,服务
查看值还在
redis-cli——Redis2019 !
警告:使用一个密码'——'选项在命令行界面可能不安全。
127.0.0.1:6379>键*
1)“k2”
2)“k1”
2,测试服务异常导致appendonly。aof文件乱码
aof持久化是把操作都写进了文件appendonly。aof
查看文件
猫appendonly。aof
* 2
6美元选择
1美元
0
* 5
4美元mset
2美元k1
2美元v1
2美元k2
2美元v2
编辑文件,填写内容代替文件错乱
vi appendonly。aof
sfsbdd 1213 fn
* 2
6美元选择
1美元
0
* 5
4美元mset
2美元k1
2美元v1
2美元k2
2美元v2 dshfs
sdfksh5&
khdfjsj % $ $
oguduog7& *
重启复述,服务,访问复述,发现失败
redis-cli——Redis2019 !
警告:使用一个密码'——'选项在命令行界面可能不安全。
不能连接到复述127.0.0.1:6379:连接拒绝
不能连接到复述127.0.0.1:6379:连接拒绝
使用修复命令修复文件
# redis-check-aof——修复appendonly root@master1数据。aof
0 x 45:预期的前缀‘*’,有:“d”
aof分析:大?114,ok_up_to=69, diff=45
从114字节,这将缩小aof与45个字节到69字节
继续吗?[y/N]: y
成功截断AOF
查看文件发现已经修复
猫appendonly。aof
* 2
6美元选择
1美元
0
* 5
4美元mset
2美元k1
2美元v1
2美元k2
2美元v2
启动复述,服务,访问复述,查看数据没有问题
redis-cli——Redis2019 !
警告:使用一个密码'——'选项在命令行界面可能不安全。
127.0.0.1:6379>键*
1)“k1”
2)“k2”
127.0.0.1:6379>德尔k1
(整数)1
127.0.0.1:6379>德尔k2
(整数)1
127.0.0.1:6379>转k6 v6 mset k5 v5
好
127.0.0.1:6379>键*
1)“速率”
2)“转k6”
编辑复述。相依,打开RDB持久化
重启复述,服务,访问复述,发现数据还是只有AOF持久化的数据,并没有之前RDB持久化的数据,正好证明了同时打开两种持久化配置的情况下会首先使用AOF持久化的数据。
redis-cli——Redis2019 !
警告:使用一个密码'——'选项在命令行界面可能不安全。
127.0.0.1:6379>键*
1)“转k6”
2)“速率”
3,删除所有数据,利用AOF的特点进行修复
删除数据,停止服务
127.0.0.1:6379>flushall
127.0.0.1:6379>可以;关闭
编辑文件
/appendonly vi数据。aof
* 2
6美元选择
1美元
0
* 5
4美元mset
2美元k1
2美元v1
2美元k2
2美元* 2 v2
6美元选择
……
选择美元1
0
* 1
8美元flushall
删除最后一行flushall
启动复述,服务
发现数据恢复
redis-cli——Redis2019 !
警告:使用一个密码'——'选项在命令行界面可能不安全。
127.0.0.1:6379>键*
1)“转k6”
2)“速率”
参考:https://blog.csdn.net/qq_33101675/article/details/80631992