【Redis】Redis如何修改密码?

文章目录

    • [一、为什么需要设置 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 命令

六、安全建议

  1. 不要使用弱密码,建议大小写字母+数字+特殊符号组合。
  2. 绑定本地 IP :在配置文件中设置 bind 127.0.0.1,避免暴露公网。
  3. 修改默认端口 :将 port 6379 改为其他端口。
  4. 启用 Redis 6.0+ 的 ACL 功能,实现多用户权限管理。

七、总结

方式 生效方式 重启后是否保留 适用场景
CONFIG SET 立即生效 ❌ 不保留 临时测试、紧急设置
修改配置文件 + 重启 重启后生效 ✅ 保留 生产环境永久配置

推荐 生产环境使用配置文件方式 ,并配合 AUTH 命令验证,确保 Redis 不被未授权访问。


相关推荐
坚定信念,勇往无前2 小时前
mongodb的日志分割
数据库·mongodb
oradh5 小时前
Oracle TX 锁 Mode 4(Share)问题排查总结
数据库·oracle·tx 锁 mode 4·oracle tx 锁
yi.Ist6 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
2601_963282777 小时前
工程项目、政企采购为什么优先选择对讲机批量采购?
数据库
Doraemomo7 小时前
SQLite数据库
数据库·sqlite
云贝教育-郑老师8 小时前
MySQL 的“黑匣子“:Performance Schema 把数据库内部变成一张可查的表
数据库·mysql
这个DBA有点耶10 小时前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba
青春之我_XP10 小时前
MySQL 常用日期函数 实战指南
数据库·sql·mysql·数据分析·数据库开发·日期函数
Nturmoils10 小时前
sys_dump 备了库,角色和权限别漏在外面
数据库