Redis密码遗忘怎么办?三步教你轻松解决

问题场景

运维过程中,有时会因为文档丢失或人员变动导致Redis密码被遗忘,此时无法通过redis-cli正常访问数据库。本文将介绍三种靠谱的解决方案。

方法一:修改配置文件重启

  1. 找到Redis配置文件(通常为/etc/redis/redis.conf或/usr/local/redis/redis.conf)。
  2. 使用vim或nano打开,找到requirepass一行,将密码改为新密码(如requirepass newpassword),或者直接注释掉该行(前面加#)以取消密码。
  3. 重启Redis服务:systemctl restart redis或redis-server /path/to/redis.conf。
  4. 验证:redis-cli -a newpassword进入。

方法二:免密模式重启

如果不希望改配置,可以临时启动一个无密码的Redis实例。

  1. 先备份数据(SAVE或BGSAVE),确保dump.rdb或appendonly.aof文件完整。
  2. 停止当前Redis服务。
  3. 启动时忽略配置文件,直接运行redis-server --requirepass ''(注意''表示空密码)。
  4. 此时任何客户端都能无密码访问,请尽快修改密码:redis-cli CONFIG SET requirepass newpassword。
  5. 更新配置文件中的密码条目,并重启服务使配置持久化。

方法三:利用持久化文件恢复

如果实例还在运行但无法登录,可以借助redis-cli的SHUTDOWN命令(但需要密码)或直接kill进程,然后使用redis-check-rdb修复或直接读取dump.rdb解析数据。

  • 这种方法较为复杂,适合极端情况。建议优先使用方法一或二。

注意事项

  • 操作前务必做好数据备份,尤其是dump.rdb和appendonly.aof文件。
  • 修改密码后,记得更新所有客户端连接配置。
  • 如果Redis用于生产环境,为防止安全风险,重置密码后立即更换强密码并开启防火墙。

总之,Redis密码忘记并不可怕,通过上述三种方法可以快速恢复访问。日常运维建议使用密码管理器或团队共享文档妥善保管密码。