恢复思路
如果Redis启用AOF持久化,则可以根据AOF文件进行恢复。AOF文件是将所有写指令以文本形式保存的,可以将AOF文件中的flushdb/flushall
命令删除,再重启Redis即可。
误操作后首先要做的事
如果发生了AOF重写,AOF文件中的数据将被覆盖,数据将无法恢复。所以在误操作之后,首先要做的是避免发生AOF重写。第一,不要手动执行bgrewriteaof
命令;第二,修改触发AOF重写的相关参数,将参数值调大,避免自动触发AOF重写。
恢复过程
1)调整触发AOF重写的参数值:
CONFIG SET auto-aof-rewrite-percentage 1000
CONFIG SET auto-aof-rewrite-min-size 100000000000
2)删除AOF文件中误操作的写指令:
*1
$8
FLUSHALL
3)检查AOF文件:
# redis-check-aof appendonly_6379.aof
4)重启Redis服务,恢复数据。