2015-06-11 10 views
16

क्या पर कोई तरीका है सभी रेडिस क्लाइंट कनेक्शन एक कमांड के साथ निकालें?क्या सभी रेडिस क्लाइंट कनेक्शन निकालने का कोई तरीका है?

मुझे पता है कि यह आईपी द्वारा दूर करने के लिए संभव है: पोर्ट

CLIENT KILL addr:port 

इसके अलावा मैंने पाया कि Redis 2.8.12 के बाद से ऐसा करना संभव है। लेकिन मुझे कुछ भी नहीं मिला।

+1

बंद :) गंभीरता हालांकि:

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

फिर Redis ग्राहक आदेश कनेक्शन को मारने की कोशिश। उपयोग का मामला क्या है? –

+0

यह सिर्फ देव उद्देश्य के लिए है, हम कनेक्शन की सीमा पर हैं और मैं हर किसी को मारना चाहता हूं। – felipekm

उत्तर

25

CLIENT KILLTYPE तर्क यह है कि एक तीन कनेक्शन प्रकारों में से एक हो सकता है प्राप्त कर सकते हैं; normal, slave और pubsub

आप नीचे दिए गए तीन आदेशों भेज कर सभी खुले कनेक्शनों को मार सकता है:

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

ध्यान दें कि आप बाद में दो को छोड़ सकते हैं यदि आप उन्हें (दास और pubsub कनेक्शन) का उपयोग नहीं करते।

आप कामिकज़ कनेक्शन हत्यारे के लिए SKIPME no भी जोड़ सकते हैं।

+0

मुझे याद नहीं आया - धन्यवाद! –

4

तो SHUTDOWN निश्चित रूप से सबसे आसान तरीका है, खासकर देव में।

हालांकि, हालांकि रेडिस में CLIENT KILL * संस्करण नहीं है, तो आप इसे स्क्रिप्ट कर सकते हैं। AFAIR आप इसे लुआ में भी कर सकते हैं लेकिन मैंने अब और 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

है कि आपका कनेक्शन संख्याओं की जांच करने के लिए निम्न आदेश का उपयोग कर सकते हैं: नहीं, कोई http://redis.io/commands/client-kill

संबंधित मुद्दे