115 lines
2.5 KiB
Markdown
115 lines
2.5 KiB
Markdown
|
在 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 服务器增加一层安全保护,防止未经授权的访问。
|