一、如何为 Redis 设置连接密码?

你需要修改 Redis 的配置文件 redis.windows.conf(Windows)或 redis.conf(Linux/macOS)。

步骤 1:编辑 Redis 配置文件

打开你的 Redis 安装目录下的配置文件:

C:\redis\redis.windows.conf

用记事本或 VS Code 打开它。

找到 # requirepass 配置项

搜索这一行(默认被注释):

# requirepass foobared

修改为(去掉 # 并设置你的密码):

requirepass your_strong_password_here

例如:

requirepass MyRedisPass123!@#

✅ 保存文件!


步骤 2:重启 Redis 服务

如果你是 直接运行

redis-server.exe redis.windows.conf

先关闭旧进程(Ctrl+C),然后重新运行:

redis-server.exe redis.windows.conf

如果你是 作为 Windows 服务运行,需要先卸载再重新安装服务:

# 停止服务
redis-server --service-stop

# 卸载旧服务
redis-server --service-uninstall

# 重新安装服务(会读取新配置)
redis-server --service-install redis.windows.conf --loglevel verbose

# 启动服务
redis-server --service-start

二、测试密码是否生效

方法 1:使用 redis-cli 测试

redis-cli

然后输入:

ping

如果 Redis 有密码,你会收到:

(error) NOAUTH Authentication required.

👉 正确!说明密码保护已启用。

登录认证:

auth your_strong_password_here

例如:

auth MyRedisPass123!@#

如果返回:

OK

然后再次 ping 返回 PONG,说明认证成功 ✅


三、在代码中使用密码连接 Redis(Python 示例)

如果你用 Python(如 Flask、Django),连接时需要提供密码:

import redis

r = redis.Redis(
    host='localhost',
    port=6379,
    password='MyRedisPass123!@#',  # 密码
    db=0,
    decode_responses=True
)

# 测试连接
if r.ping():
    print("✅ Redis 连接成功!")

四、其他客户端连接方式

1. redis-cli 命令行直接认证

redis-cli -a MyRedisPass123!@#

⚠️ 注意:-a 方式在命令行中明文显示密码,不安全,仅用于测试。

更安全的方式是连接后手动 auth

2. 带密码的连接字符串(URL 格式)

redis://:password@localhost:6379/0

例如:

redis://:MyRedisPass123!@#@localhost:6379/0

很多框架(如 Celery、Flask-Caching)支持这种格式。


五、安全建议

建议 说明
🔐 设置强密码 包含大小写字母、数字、符号,避免简单密码
🔒 禁用危险命令 FLUSHALL, CONFIG,可在配置中重命名或禁用
🌐 防火墙限制 只允许信任 IP 访问 6379 端口
🚫 不要暴露在公网 Redis 不该直接对外网开放
🔄 定期备份 使用 BGSAVE 或持久化机制

六、可选:禁用某些危险命令(高级)

redis.windows.conf 中可以重命名或禁用命令:

rename-command FLUSHDB disabled_flushdb
rename-command FLUSHALL disabled_flushall
rename-command CONFIG disabled_config

这样即使别人连上了,也无法执行高危操作。


总结

操作 命令 / 配置
设置密码 requirepass your_password
重启服务 重新 --service-install
认证登录 AUTH your_password
Python 连接 password='xxx' 参数
安全建议 强密码 + 防火墙 + 禁用危险命令
作者:admin  创建时间:2025-10-20 17:25
最后编辑:admin  更新时间:2025-10-20 17:25