有没有一种方法可以用一个命令 断开所有Redis客户端连接?
我知道可以通过IP:PORT方式删除连接。
CLIENT KILL addr:port
同时我发现自Redis 2.8.12以来可以这样做。但是,我找不到相关的说明。
有没有一种方法可以用一个命令 断开所有Redis客户端连接?
我知道可以通过IP:PORT方式删除连接。
CLIENT KILL addr:port
同时我发现自Redis 2.8.12以来可以这样做。但是,我找不到相关的说明。
CLIENT KILL
命令可以接收 TYPE
参数,其值可以是三种连接类型之一:normal
(普通连接)、slave
(从属连接)和 pubsub
(发布订阅连接)。
以下三个命令可以关闭所有打开的连接:
CLIENT KILL TYPE normal
CLIENT KILL TYPE slave
CLIENT KILL TYPE pubsub
请注意,如果您不使用从属连接和发布订阅连接,则可以跳过后两个连接。
您还可以为“神风连接终结者”添加 SKIPME no
。
CLIENT KILL
之后出现新的连接怎么办?有没有办法杀死并阻止更多的连接出现? - piepi所以,在开发过程中,SHUTDOWN
明显是最简单的方法。
然而,虽然 Redis 没有 CLIENT KILL *
变体,但您可以编写脚本来实现它。据我所知,您甚至可以使用 Lua 进行这项操作,但我现在检查了一下,发现 CLIENT LIST
出错了,所以我猜这可能已经改变了。不过,使用 CLI 实现这个功能还是相当容易的——以下命令似乎可以达到目的:
redis-cli CLIENT LIST | cut -d ' ' -f 2 | cut -d = -f 2 | awk -e '{ print "CLIENT KILL " $0 }' | redis-cli -x
netstat -an | grep :6379 | grep ESTABLISHED | wc -l
然后尝试使用Redis客户端命令来断开连接:
http://redis.io/commands/client-kill