在 Redis 5.0.14 中,如果误操作使用了 FLUSHDB 命令清空了数据库,并且此时 AOF 文件还没有被重写,你可以尝试以下方案来恢复数据:
备份 AOF 文件: 在进行任何操作之前,请务必先对 AOF 文件做好备份,以防止进一步的损失。
将 AOF 文件转换为文本: 使用 Redis 提供的工具 redis-check-aof 将 AOF 文件转换为文本格式,命令如下:
复制代码
redis-check-aof --fix <aof文件名> > aof.txt
编辑文本文件: 得到的 aof.txt 文件是一个文本文件,你可以使用任何文本编辑器打开它,并查找并删除包含 FLUSHDB 命令的行。确保只删除正确的行。保存并关闭文件。
重建数据库: 关闭 Redis 服务器,然后使用编辑后的文本文件重新启动 Redis 并加载数据,命令如下:
复制代码
redis-server --appendonly yes --appendfilename "<新的aof文件名>" --dbfilename "<新的rdb文件名>"
请注意将 <新的aof文件名> 和 <新的rdb文件名> 替换为合适的文件名。这样,Redis 会使用修复过的 AOF 文件和新的 RDB 文件来加载数据。
然而,请注意修改 AOF 文件是一项高风险操作。在执行上述操作之前,请确保你完全理解操作的风险,并在备份数据的基础上进行操作。如果你不确定该如何操作,强烈建议咨询 Redis 官方文档或寻求专业的 Redis 数据恢复服务。