2015-06-11 14 views
16

C'è un modo per Rimuovere tutte le connessioni client Redis con un comando?C'è un modo per rimuovere tutte le connessioni client Redis?

So che è possibile rimuovere da IP: PORT

CLIENT KILL addr:port 

Inoltre ho trovato che è possibile fare questo in quanto Redis 2.8.12. Ma Non ho trovato nulla.

+1

SPEGNIMENTO :) Seriamente, però, no. Qual è il caso d'uso? –

+0

Questo è solo per scopo di sviluppo, stiamo arrivando al limite delle connessioni e voglio uccidere tutti. – felipekm

risposta

25

CLIENT KILL può ricevere TYPE argomento che può essere uno di un tre tipi di connessione; normal, slave e pubsub.

si può uccidere tutte le connessioni aperte inviando i seguenti tre comandi:

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

Si noti che si può saltare il più tardi due se non vengono (connessioni slave e PubSub) utilizzati.

È inoltre possibile aggiungere un SKIPME no per un kamikaze killer di connessioni.

+0

Non me lo ricordavo - grazie! –

4

Quindi SHUTDOWN è sicuramente il modo più semplice, specialmente in dev.

Tuttavia, sebbene Redis non disponga di una variante CLIENT KILL *, è possibile copiarlo. AFAIR potresti anche farlo a Lua, ma ho controllato ora e CLIENT LIST errori, quindi suppongo che sia cambiato. Eppure, è abbastanza facile da fare questo con la CLI - questo sembra fare il trucco:

redis-cli CLIENT LIST | cut -d ' ' -f 2 | cut -d = -f 2 | awk -e '{ print "CLIENT KILL " $0 }' | redis-cli -x 
2

È possibile utilizzare il seguente comando per verificare i propri numeri di connessione:

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

comando client Redis quindi provare ad uccidere collegamento: http://redis.io/commands/client-kill

Problemi correlati