*Redis CLIENT SETINFO 命令
设置当前连接使用的客户端库名称和版本。Redis 7.2+ 引入,用于服务器端识别客户端来源和版本。
*语法
CLIENT SETINFO lib-name <library-name>
CLIENT SETINFO lib-ver <library-version>
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lib-name | 标志 | 条件 | 设置客户端库名称 |
| library-name | String | 是 | 库名称(如 redis-py、jedis、ioredis) |
| lib-ver | 标志 | 条件 | 设置客户端库版本 |
| library-version | String | 是 | 库版本号 |
*返回值
| 条件 | 返回值 |
|---|---|
| 成功 | OK |
| 格式错误 | 错误 |
*时间复杂度
O(1)
*
*示例
> CLIENT SETINFO lib-name redis-py
OK
> CLIENT SETINFO lib-ver 4.5.0
OK
# 验证
> CLIENT INFO
... lib-name=redis-py lib-ver=4.5.0 ...
*常见错误
- 错误的子命令:只支持
lib-name和lib-ver,其他子命令报错。
*最佳实践
- 客户端库标识:客户端库连接 Redis 时自动调用 CLIENT SETINFO,便于服务器端识别客户端来源和版本,排查兼容性问题。
- 监控统计:INFO clients 和 CLIENT LIST 会显示 lib-name 和 lib-ver,用于统计客户端分布。
*FAQ
Q: CLIENT SETINFO 和 CLIENT SETNAME 有什么区别? A: CLIENT SETNAME 设置连接名称(由用户或应用自定义);CLIENT SETINFO 设置客户端库名称和版本(由客户端 SDK 自动设置)。两者用途不同,可以同时使用。
Q: 客户端库会自动调用 CLIENT SETINFO 吗? A: 主流 Redis 客户端库(redis-py、jedis、ioredis 等)在 Redis 7.2+ 连接时会自动发送 CLIENT SETINFO。