Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

मैं रेडिस में कनेक्शन पूल का ठीक से उपयोग कैसे करूं?

Redis-py आपके लिए एक कनेक्शन पूल प्रदान करता है जिससे आप एक कनेक्शन पुनः प्राप्त कर सकते हैं। कनेक्शन पूल कनेक्शन का एक सेट बनाते हैं जिसे आप आवश्यकतानुसार उपयोग कर सकते हैं (और जब किया जाता है - कनेक्शन को पुन:उपयोग के लिए कनेक्शन पूल में वापस कर दिया जाता है)। उन्हें त्यागे बिना फ्लाई पर कनेक्शन बनाने की कोशिश करना (यानी पूल का उपयोग नहीं करना या पूल का सही तरीके से उपयोग नहीं करना) आपको रेडिस के लिए बहुत सारे कनेक्शन छोड़ देगा (जब तक आप कनेक्शन सीमा को हिट नहीं करते)।

आप इनिट विधि में कनेक्शन पूल सेट करना और पूल को वैश्विक बनाना चुन सकते हैं (यदि आप वैश्विक के साथ असहज हैं तो आप अन्य विकल्पों को देख सकते हैं)।

redis_pool = None

def init():
    global redis_pool
    print("PID %d: initializing redis pool..." % os.getpid())
    redis_pool = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0)

फिर आप इस तरह के पूल से कनेक्शन पुनः प्राप्त कर सकते हैं:

redis_conn = redis.Redis(connection_pool=redis_pool)

साथ ही, मुझे लगता है कि आप रेडिस-पीई के साथ किराए पर लेने वाले का उपयोग कर रहे हैं क्योंकि इसे कुछ मामलों में प्रदर्शन में सुधार करना चाहिए। क्या आपने अपने मौजूदा सेटअप के साथ रेडिस सर्वर के लिए खुले कनेक्शनों की संख्या की भी जाँच की है क्योंकि यह काफी अधिक होने की संभावना है? जानकारी प्राप्त करने के लिए आप INFO कमांड का उपयोग कर सकते हैं:

redis-cli info

ग्राहकों की जांच करें अनुभाग जिसमें आप देखेंगे "connected_clients " फ़ील्ड जो आपको बताएगी कि आपने उस पल में रेडिस सर्वर के लिए कितने कनेक्शन खोले हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. redis.conf को कैसे सेव और एग्जिट करें?

  2. अजवाइन/रेडिस एक ही कार्य को समानांतर में कई बार निष्पादित किया जा रहा है

  3. संदेश की प्रतीक्षा में हिरेडिस

  4. लुआ स्क्रिप्ट ब्लॉक रेडिस-सर्वर क्यों?

  5. किसी अन्य मशीन से कॉपी किए गए स्नैपशॉट (rdb फ़ाइल) से रेडिस डेटा कैसे पुनर्प्राप्त करें?