Redis 宕机后,可以通过以下方法恢复数据:

  1. 如果开启了持久化功能(RDB 或 AOF),可以从备份文件中恢复数据。
  2. 如果没有开启持久化功能,但配置了主从复制,可以从从节点中恢复数据。
  3. 如果没有开启持久化功能,也没有配置主从复制,那么数据将无法恢复。

针对第1种情况,具体操作如下:

  1. 如果开启了 RDB 持久化,找到最近的 RDB 文件(通常位于 Redis 配置文件中指定的目录下,文件名为 dump.rdb),将其拷贝到 Redis 的数据目录下(通常为 /var/lib/redis 或 /data/redis)。
  2. 重启 Redis 服务。

针对第2种情况,具体操作如下:

  1. 找到从节点的 IP 和端口。
  2. 在主节点上执行以下命令,将从节点切换为主节点:
CONFIG SET masterslaveinfo-refresh-interval 0
SLAVEOF <从节点IP> <从节点端口>
  1. 重启原主节点(现在的从节点)的 Redis 服务。
  2. 在新的主节点上执行以下命令,将原主节点(现在的从节点)添加为从节点:
CONFIG SET masterslaveinfo-refresh-interval 60
SLAVEOF <原主节点IP> <原主节点端口>
  1. 重启原主节点(现在的从节点)的 Redis 服务。