有没有办法使用一个命令删除所有Redis客户端连接?
我知道可以通过IP删除:PORT
CLIENT KILL addr:port
此外,我发现自Redis 2.8.12以来可以这样做。 但 我找不到任何关于它的信息。
答案 0 :(得分:32)
CLIENT KILL
可以接收TYPE
个参数,该参数可以是三种连接类型之一; normal
,slave
和pubsub
。
您可以通过发送以下三个命令来终止所有打开的连接:
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