Redis CLIENT KILL命令

Redis CLIENT KILL命令教程

Redis 的 CLIENT KILL 命令用于关闭指定 IP 和 端口的客户端的连接,其中 IP 和端口应该和 CLIENT LIST 命令输出的其中一行匹配。

因为 Redis 使用单线程设计,所以当 Redis 正在执行命令的时候,不会有客户端被断开连接。如果要被断开连接的客户端正在执行命令,那么当这个命令执行之后,在发送下一个命令的时候,它就会收到一个网络错误,告知它自身的连接已被关闭。

Redis CLIENT KILL命令详解

语法

192.168.98.70:6379> CLIENT KILL ip:port

参数

参数 描述
ip 要关闭的客户端的地址。
port 要关闭的连接的端口。

返回值

当指定的客户端存在,且被成功关闭时,返回 OK 。

时间复杂度

O(N) , N 为已连接的客户端数量。

可用版本

>= 2.4.0

案例

CLIENT KILL关闭客户端连接

使用 CLIENT KILL 命令关闭客户端连接

127.0.0.1:6379> CLIENT LIST id=406 addr=127.0.0.1:38551 fd=19 name= age=14 idle=14 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=command id=404 addr=127.0.0.1:47729 fd=17 name= age=24171 idle=20805 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=evalsha id=405 addr=127.0.0.1:46934 fd=18 name= age=10178 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 obl=0 oll=0 omem=0 events=r cmd=client 127.0.0.1:6379> CLIENT KILL 127.0.0.1:46934 OK 127.0.0.1:6379> CLIENT LIST id=404 addr=127.0.0.1:47729 fd=17 name= age=24249 idle=20883 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=evalsha id=406 addr=127.0.0.1:38551 fd=19 name= age=92 idle=92 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=command id=407 addr=127.0.0.1:38729 fd=18 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 obl=0 oll=0 omem=0 events=r cmd=client 127.0.0.1:6379> CLIENT KILL 127.0.0.1:46934 (error) ERR No such client 127.0.0.1:6379>

我们首先使用 CLIENT LIST 列出了当前所有的连接的客户端,接着,我们使用 CLIENT KILL 命令关闭了指定客户端的连接。

使用 CLIENT KILL 命令关闭了连接后,再次使用 CLIENT LIST 列出了当前所有的连接的客户端,我们发现,该连接已经不在列表中了,最后,我们再次使用 CLIENT KILL 命令关闭不存在客户端的连接,报错。

Redis CLIENT KILL命令总结

Redis 的 CLIENT KILL 命令用于关闭指定 IP 和 端口的客户端的连接,其中 IP 和端口应该和 CLIENT LIST 命令输出的其中一行匹配。