*Redis CLIENT GETNAME 命令 获取当前连接的名称

*语法说明

CLIENT GETNAME

*中文详细说明

CLIENT GETNAME 命令返回由 CLIENT SETNAME 命令为当前连接设置的名称。

为连接设置名称是一种非常有用的调试手段,尤其当应用出现连接泄漏时,通过 CLIENT LIST 可以快速识别各个连接的来源和用途。

  • 新创建的连接默认没有名称
  • 名称在 CLIENT LIST 的输出中以 name 字段显示
  • 名称最大可占用 512 MB(但实践中建议使用简短有意义的字符串)
  • 名称中不允许包含空格(避免与 CLIENT LIST 的输出格式冲突)
  • 使用 CLIENT SETNAME "" 可清除连接名称

*可运行示例

*示例 1:新连接默认无名称

# 新建立的连接没有名称
redis-cli CLIENT GETNAME

预期输出:

(nil)

*示例 2:设置并获取连接名称

# 为当前连接设置名称
redis-cli CLIENT SETNAME "api-server:worker-1"

# 获取连接名称
redis-cli CLIENT GETNAME

预期输出:

OK
"api-server:worker-1"

*示例 3:清除连接名称后再获取

# 先设置名称
redis-cli CLIENT SETNAME "temp-connection"

# 清除名称(设为空字符串)
redis-cli CLIENT SETNAME ""

# 再次获取
redis-cli CLIENT GETNAME

预期输出:

OK
OK
(nil)

*示例 4:通过 CLIENT LIST 验证名称

# 设置名称
redis-cli CLIENT SETNAME "redis.com.cn-connection"

# 在 CLIENT LIST 中查找当前连接
redis-cli CLIENT LIST | grep redis.com.cn-connection

预期输出:

OK
id=42 addr=127.0.0.1:54321 name=redis.com.cn-connection ...

*返回值

  • 批量字符串回复(Bulk String Reply):已设置名称时返回名称字符串
  • 空批量字符串回复(Null Bulk String):未设置名称时返回 (nil)

*版本兼容性

Redis 版本 变更说明
>= 2.6.9 新增 CLIENT GETNAME 命令
< 2.6.9 不支持此命令

*时间复杂度

O(1) — 常量时间。仅读取连接结构中的名称字段。