typora/daliy_note/8月归档/8.26/redis.md

115 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2024-12-11 21:48:55 -05:00
在 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 服务器增加一层安全保护,防止未经授权的访问。