有没有办法删除所有Redis客户端连接?

时间:2015-06-11 20:24:38

标签: redis

有没有办法使用一个命令删除所有Redis客户端连接

我知道可以通过IP删除:PORT

CLIENT KILL addr:port

此外,我发现自Redis 2.8.12以来可以这样做。 但 我找不到任何关于它的信息。

3 个答案:

答案 0 :(得分:32)

CLIENT KILL可以接收TYPE个参数,该参数可以是三种连接类型之一; normalslavepubsub

您可以通过发送以下三个命令来终止所有打开的连接:

CLIENT KILL TYPE normal
CLIENT KILL TYPE slave
CLIENT KILL TYPE pubsub

请注意,如果不使用它们,可以跳过后两个(slave和pubsub连接)。

您还可以为神风连接杀手添加SKIPME no

答案 1 :(得分:5)

所以SHUTDOWN绝对是最简单的方法,特别是在开发中。

但是,虽然Redis没有CLIENT KILL *变体,但您可以编写脚本。 AFAIR你甚至可以在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

答案 2 :(得分:2)

您可以使用以下命令检查您的连接号码:

netstat -an | grep :6379 | grep ESTABLISHED | wc -l

然后尝试使用Redis Client命令终止连接: http://redis.io/commands/client-kill