复述,学习8——持久化相关测试AOF方式

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


复述,学习8——持久化相关测试AOF方式