在 Redis 中,设置认证(AUTH)可以为你的 Redis 服务器增加一层安全性。通过设置密码,只有提供正确密码的客户端才能访问 Redis 服务器。以下是设置和使用 Redis 认证的步骤: ### 1. 修改 Redis 配置文件 首先,找到你的 Redis 配置文件(通常是 `redis.conf`)。 在配置文件中,找到以下行(可能是被注释掉的): ``` # requirepass foobared ``` 将其取消注释并设置一个强密码,例如: ``` requirepass YourStrongPasswordHere ``` 保存配置文件并重启 Redis 服务器以使更改生效: ``` sudo systemctl restart redis-server ``` 或者,如果你是手动启动 Redis 的,可以使用: ``` redis-server /path/to/your/redis.conf ``` ### 2. 使用 AUTH 连接 Redis 服务器 当 Redis 设置了密码之后,客户端需要在连接时提供密码。以下是不同客户端的示例: #### 使用 redis-cli ``` redis-cli > AUTH YourStrongPasswordHere > PING ``` 如果认证成功,`PING` 命令将返回 `PONG`。 #### 使用 Python 的 redis-py ``` import redis r = redis.Redis(host='localhost', port=6379, password='YourStrongPasswordHere') print(r.ping()) # 如果认证成功,将返回 True ``` #### 使用 Node.js 的 ioredis ``` const Redis = require('ioredis'); const redis = new Redis({ host: 'localhost', port: 6379, password: 'YourStrongPasswordHere' }); redis.ping().then(result => { console.log(result); // 如果认证成功,将返回 'PONG' }); ``` ### 3. 在运行时设置密码 如果你需要在运行时设置或更改密码,可以使用 `CONFIG SET` 命令: ``` redis-cli > CONFIG SET requirepass YourNewStrongPasswordHere ``` 请注意,使用 `CONFIG SET` 命令设置的密码不会持久化到配置文件中。如果 Redis 服务器重启,设置将丢失。因此,最好在 `redis.conf` 中设置密码以确保持久性。 ### 4. 移除密码 如果你决定移除密码保护,可以将 `requirepass` 设置为空字符串: ``` redis-cli > CONFIG SET requirepass "" ``` 或者在配置文件中注释掉 `requirepass` 行并重启 Redis 服务器。 ### 5. 注意事项 1. **安全性**:确保使用强密码,并限制 Redis 服务器的网络访问权限。 2. **持久化**:修改 `redis.conf` 文件确保密码在重启后仍然有效。 3. **监控**:定期检查 Redis 日志和访问记录,确保未发生未经授权的访问。 通过这些步骤,你可以为 Redis 服务器增加一层安全保护,防止未经授权的访问。