Redis - 连接
Redis - 连接管理
Section titled “Redis - 连接管理”连接管理命令负责处理客户端连接到 Redis 服务器的生命周期和安全性。正确的认证和客户端标识对于构建安全且可观察的系统至关重要。
保护 Redis 实例是至关重要的第一步。Redis 提供了两种主要的认证模式。
传统认证:AUTH
Section titled “传统认证:AUTH”传统方法涉及在 redis.conf 中通过 requirepass 指令配置一个服务器范围的密码。客户端必须首先使用 AUTH 命令进行认证,然后才能执行其他任何命令。
127.0.0.1:6379> AUTH "your-secret-password"OK127.0.0.1:6379> PINGPONG如果提供了错误的密码,Redis 将返回错误并关闭连接。
现代认证:访问控制列表 (ACL)
Section titled “现代认证:访问控制列表 (ACL)”访问控制列表(ACL)在 Redis 6 中引入,是处理安全的现代推荐方式。ACL 允许您创建多个用户,每个用户拥有不同的密码和细粒度权限(例如,只读访问、访问特定命令或访问特定键模式)。
这是通过 redis-cli 创建一个受限访问用户的概念示例:
# 首先以管理员用户身份连接127.0.0.1:6379> ACL SETUSER analytics_user >somepassword ON +@read -@all ~user:*OK此命令创建一个名为 analytics_user 的用户,并设置密码。该用户只能对以 user: 前缀(~user:*)开头的键执行读取命令(+@read),并拒绝所有其他命令(-@all)。客户端随后可以使用 AUTH analytics_user somepassword 进行认证。
关键连接命令
Section titled “关键连接命令”以下是用于管理连接的基本命令列表。
| 命令 | 描述与最佳实践 |
|---|---|
| AUTH <用户> <密码> | 使用 ACLs(Redis 6+)认证客户端。旧的 AUTH <password> 语法用于传统认证。 |
| PING [消息] | 检查服务器响应性。一项基本健康检查。返回 PONG 或可选的消息。 |
| ECHO <消息> | 返回提供的消息。用于简单的连接测试或调试脚本。 |
| CLIENT LIST | 列出所有活动的客户端连接。对于监控和识别有问题的客户端至关重要。 |
| CLIENT SETNAME <名称> | 为当前连接指定一个名称,该名称会显示在 CLIENT LIST 中。这是识别应用程序连接的最佳实践。 |
| SELECT <索引> | 选择一个逻辑数据库(默认为 0-15 号)。**最佳实践:**在现代应用程序中,通常不鼓励使用此命令。为了数据分离,建议使用单独的 Redis 实例(例如,在不同的 Docker 容器中)或一致的键前缀命名方案(例如,orders:123, sessions:xyz)。这可以避免隐藏的依赖关系并简化扩展。 |
| QUIT | 优雅地关闭当前连接。 |