文章目录
-
- [一、为什么需要设置 Redis 密码?](#一、为什么需要设置 Redis 密码?)
- [二、查看当前 Redis 是否设置了密码](#二、查看当前 Redis 是否设置了密码)
- [三、在线修改 Redis 密码(临时生效)](#三、在线修改 Redis 密码(临时生效))
- [四、永久修改 Redis 密码(重启保留)](#四、永久修改 Redis 密码(重启保留))
-
- [1. 修改配置文件](#1. 修改配置文件)
- [2. 重启 Redis 服务](#2. 重启 Redis 服务)
- [3. 验证密码是否生效](#3. 验证密码是否生效)
- 五、常见错误及解决方法
- 六、安全建议
- 七、总结

css
127.0.0.1:6379> auth 123456
(error) ERR Client sent AUTH, but no password is set
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379>
一、为什么需要设置 Redis 密码?
Redis 默认安装后是没有密码验证的,这意味着任何能访问 Redis 端口(默认 6379)的人都可以执行命令,存在严重的安全风险。因此,生产环境必须设置密码。
二、查看当前 Redis 是否设置了密码
bash
redis-cli
127.0.0.1:6379> CONFIG GET requirepass
如果返回为空字符串 "",表示当前没有设置密码。
三、在线修改 Redis 密码(临时生效)
这种方式不需要重启 Redis,但 Redis 重启后会失效。
bash
redis-cli
127.0.0.1:6379> CONFIG SET requirepass 你的新密码
OK
设置后立即生效,后续所有操作都需要先认证:
bash
127.0.0.1:6379> AUTH 你的新密码
OK
⚠️ 注意:如果 Redis 之前没有密码,直接
CONFIG SET requirepass即可。如果已有密码,需要先AUTH 旧密码才能执行CONFIG SET。
四、永久修改 Redis 密码(重启保留)
1. 修改配置文件
找到 Redis 配置文件(通常是 /etc/redis/redis.conf 或 /usr/local/etc/redis.conf):
bash
sudo vim /etc/redis/redis.conf
找到如下行:
conf
# requirepass foobared
去掉注释 #,并修改密码:
conf
requirepass 你的新密码
2. 重启 Redis 服务
bash
# 使用 systemd
sudo systemctl restart redis
# 或使用 init.d
sudo /etc/init.d/redis-server restart
3. 验证密码是否生效
bash
redis-cli
127.0.0.1:6379> PING
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH 你的新密码
OK
127.0.0.1:6379> PING
PONG
五、常见错误及解决方法
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
ERR Client sent AUTH, but no password is set |
Redis 未设置密码,但客户端尝试用密码登录 | 检查 CONFIG GET requirepass |
ERR invalid password |
认证密码错误 | 确认密码是否正确 |
ERR unknown command 'CONFIG' |
Redis 禁用了 CONFIG 命令 | 使用配置文件方式修改,或启用 CONFIG 命令 |
六、安全建议
- 不要使用弱密码,建议大小写字母+数字+特殊符号组合。
- 绑定本地 IP :在配置文件中设置
bind 127.0.0.1,避免暴露公网。 - 修改默认端口 :将
port 6379改为其他端口。 - 启用 Redis 6.0+ 的 ACL 功能,实现多用户权限管理。
七、总结
| 方式 | 生效方式 | 重启后是否保留 | 适用场景 |
|---|---|---|---|
CONFIG SET |
立即生效 | ❌ 不保留 | 临时测试、紧急设置 |
| 修改配置文件 + 重启 | 重启后生效 | ✅ 保留 | 生产环境永久配置 |
推荐 生产环境使用配置文件方式 ,并配合 AUTH 命令验证,确保 Redis 不被未授权访问。