• CLIENT SETNAME connection-name
    • 返回值
    • 代码示例

    CLIENT SETNAME connection-name

    可用版本: >= 2.6.9
    时间复杂度: O(1)

    为当前连接分配一个名字。

    这个名字会显示在 CLIENT LIST 命令的结果中,用于识别当前正在与服务器进行连接的客户端。

    举个例子,在使用 Redis 构建队列(queue)时,可以根据连接负责的任务(role),为信息生产者(producer)和信息消费者(consumer)分别设置不同的名字。

    名字使用 Redis 的字符串类型来保存,最大可以占用 512 MB 。另外,为了避免和 CLIENT LIST 命令的输出格式发生冲突,名字里不允许使用空格。

    要移除一个连接的名字,可以将连接的名字设为空字符串 ""

    使用 CLIENT GETNAME 命令可以取出连接的名字。

    新创建的连接默认是没有名字的。

    Tip

    在 Redis 应用程序发生连接泄漏时,为连接设置名字是一种很好的 debug 手段。

    返回值

    设置成功时返回 OK

    代码示例

    1. # 新连接默认没有名字
    2.  
    3. redis 127.0.0.1:6379> CLIENT GETNAME
    4. (nil)
    5.  
    6. # 设置名字
    7.  
    8. redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connection
    9. OK
    10.  
    11. # 返回名字
    12.  
    13. redis 127.0.0.1:6379> CLIENT GETNAME
    14. "hello-world-connection"
    15.  
    16. # 在客户端列表中查看
    17.  
    18. redis 127.0.0.1:6379> CLIENT LIST
    19. addr=127.0.0.1:36851
    20. fd=5
    21. name=hello-world-connection # <- 名字
    22. age=51
    23. ...
    24.  
    25. # 清除名字
    26.  
    27. redis 127.0.0.1:6379> CLIENT SETNAME # 只用空格是不行的!
    28. (error) ERR Syntax error, try CLIENT (LIST | KILL ip:port)
    29.  
    30. redis 127.0.0.1:6379> CLIENT SETNAME "" # 必须双引号显示包围
    31. OK
    32.  
    33. redis 127.0.0.1:6379> CLIENT GETNAME # 清除完毕
    34. (nil)