【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 不被未授权访问。


相关推荐
gihigo19982 小时前
基于MSComm控件的PC串口通信程序(中断方式接收数据)
数据库·mongodb
十五年专注C++开发2 小时前
达梦数据库在Linux备份报错 -8003: 缺少本地或者远程归档 解决方案
数据库·c++·dm·备份复原
Leo.yuan2 小时前
经营分析如何联动业务与财务?4步打通业财经营分析指标
数据库·数据分析·经营分析
Yana.nice2 小时前
MySQL 事务的四大特性(ACID)
数据库·mysql·oracle
一个有温度的技术博主2 小时前
Redis集群实战:如何实现节点的弹性伸缩与数据迁移?
redis·分布式·缓存·架构
coder阿龙3 小时前
基于SpringAI+Qdrant+Ollama本地模型和向量数据库开发问答和RAG检索
java·数据库·spring boot·ai·数据库开发
小小程序员.¥3 小时前
oracle--视图、序列、索引
服务器·数据库·oracle
fire-flyer3 小时前
ClickHouse系列(二):MergeTree 家族详解
大数据·数据库·clickhouse
Yana.nice3 小时前
MySQL 三大日志(redo log、undo log、binlog)的区别和作用
数据库·mysql