如何为Redis集群设置密码?3主3从集群配置后无验证提示问题
如何正确为3主3从Redis集群设置密码?
嗨,我来帮你搞定这个问题!你只修改requirepass后登录没密码提示,是因为Redis集群的密码配置需要兼顾客户端登录认证和节点间通信认证两个场景,光设置一个参数是不够的,具体步骤如下:
1. 给所有6个节点配置两个关键参数
打开每个节点的/etc/redis/redis.conf配置文件,同时添加/修改以下两个参数,并且确保所有节点的密码完全一致:
# 客户端登录Redis时需要输入的密码 requirepass your_strong_password_here # 集群节点之间互相通信时使用的认证密码,必须和requirepass保持一致 masterauth your_strong_password_here
划重点:3个主节点+3个从节点,一共6个实例,每个都要改!漏了任何一个节点,都会导致集群通信异常或者密码验证失效。
2. 重启所有Redis节点
配置修改完成后,逐个重启每个Redis节点让配置生效。如果你的Redis是用systemd管理的,可以用这个命令:
systemctl restart redis
如果是直接启动的,就用指定配置文件的方式重启:
redis-server /etc/redis/redis.conf
3. 验证密码是否生效
- 先尝试直接登录任意节点:
此时执行redis-cli -h 你的节点IP -p 你的节点端口KEYS *这类命令,会收到NOAUTH Authentication required.的提示,说明密码验证已经生效。 - 输入密码认证后就能正常操作了:
AUTH your_strong_password_here - 再检查集群状态是否正常:认证成功后执行
CLUSTER INFO,如果返回的cluster_state是ok,说明节点间的认证也没问题。
额外小提示
- 后续登录集群可以直接在命令行带密码,省得每次手动输入:
redis-cli -h 节点IP -p 端口 -a your_strong_password_here - 如果是已经运行中的集群,修改密码后不需要重新创建集群,只要每个节点配置好重启就行,不会影响集群数据。
内容的提问来源于stack exchange,提问作者24SegFault




