服务器可能在程序正在对 AOF 文件进行写入时停机, 如果停机造成了 AOF 文件出错(corrupt), 那么 Redis 在重启时会拒绝载入这个 AOF 文件, 从而确保数据的一致性不会被破坏。
当发生这种情况时, 可以用以下方法来修复出错的 AOF 文件:
- 为现有的 AOF 文件创建一个备份。
- 使用 Redis 附带的
redis-check-aof
程序,对原来的 AOF 文件进行修复。
$ redis-check-aof --fix
- (可选)使用
diff -u
对比修复后的 AOF 文件和原始 AOF 文件的备份,查看两个文件之间的不同之处。 - 重启 Redis 服务器,等待服务器载入修复后的 AOF 文件,并进行数据恢复。