恢复Redis被误删的数据

结论:要恢复删除的key,前提是需要开启aof持久化策略;在开启aof持久化策略的情况下,删不删除rdb文件没有关系。
因为:redis恢复机制,即在开启aof并且存在文件的情况下,优先从aof文件中恢复

  1. 如果只配置 AOF ,重启时加载 AOF 文件恢复数据;
  2. 如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据;
  3. 如果只配置 RDB,启动是将加载 dump 文件恢复数据。

附:
在这里插入图片描述

https://www.alibabacloud.com/help/zh/apsaradb-for-redis/latest/backup-and-restoration-solutions?spm=a2c63.p38356.0.0.2ae942d6CYKMPH#section-nr6-ei4-yiu

1.开启aof和rdb持久化策略
 appendonly yes
 appendfilename "appendonly.aof"

 // rdb默认开启,可以配置调整参数
 save 900 1
 save 300 10
 save 60 10000

连接redis后,造些测试数据:

set james_test 123

通过save命令产生redis rdb备份文件,通过config set appendonly yes会产生aof文件;

打开rdb文件查看内容:
在这里插入图片描述

打开aof文件查看内容:
在这里插入图片描述
删除刚才创建的key:

del james_test

此时我们再看aof文件中多了些东西:
在这里插入图片描述
最后5行解析:

*2   // 代表del james_test总共分为两部分
$3  // $3代表接下来是个字符串,长度为3
del // 字符串del,长度为3
$10  //   $1代表接下来是个字符串,长度为10
james_test    // 字符串james_test,长度为10

而rdb文件内容不变:
在这里插入图片描述
把aof文件中del以及后面的内容删掉并保存:
在这里插入图片描述

然后重启redis,查看刚才的key:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/RookiexiaoMu_a/article/details/126308881