जब बीएलपीओपी जैसे आदेशों को अवरुद्ध करने या किसी पब/उप चैनल को सुनने की बात आती है, तो आपको टॉर्नेडो-रेडिस जैसे एसिंक्रोनस क्लाइंट की आवश्यकता होगी। आप इस डेमो के साथ शुरू कर सकते हैं यह देखने के लिए कि कैसे एक साधारण सार्वजनिक चैट एप्लिकेशन को विकसित करने के लिए टॉर्नेडो-रेडिस क्लाइंट का उपयोग किया जा सकता है।
लेकिन मैं ज्यादातर अन्य मामलों के लिए हायररिस के साथ सिंक्रोनस रेडिस-पीई क्लाइंट का उपयोग करने की सलाह दूंगा।
एसिंक्रोनस क्लाइंट का मुख्य लाभ यह है कि आपका सर्वर रेडिस सर्वर प्रतिक्रिया की प्रतीक्षा करते हुए आने वाले अनुरोधों को संभाल सकता है। हालांकि, रेडिस सर्वर इतना तेज है कि ज्यादातर मामलों में आपके टॉर्नेडो एप्लिकेशन में एसिंक्रोनस कॉलबैक सेट करने का एक ओवरहेड अनुरोध प्रसंस्करण के कुल समय में और रेडिस सर्वर प्रतिक्रिया की प्रतीक्षा करने में लगने वाले समय में अधिक जोड़ता है।
एसिंक्रोनस क्लाइंट का उपयोग करके आप एक ही समय में रेडिस सर्वर को कई अनुरोध भेजने का प्रयास कर सकते हैं, लेकिन रेडिस सर्वर सिंगल-थ्रेडेड है (जैसे टॉरनेडो सर्वर), इसलिए यह इन अनुरोधों का एक-एक करके जवाब देगा और आपको लगभग कुछ नहीं मिलेगा। और, वास्तव में, आपको एक ही समय में एक ही रेडिस सर्वर पर कई रेडिस कमांड भेजने की जरूरत नहीं है, जब तक कि एमजीईटी/एमएसईटी जैसी पाइपलाइन और कमांड हैं।
जब आप कई रेडिस सर्वर इंस्टेंस का उपयोग करते हैं तो एक एसिंक्रोनस क्लाइंट के कुछ फायदे होते हैं, लेकिन मेरा सुझाव है कि एक सिंक्रोनस (रेडिस-पीई) क्लाइंट और एक प्रॉक्सी जैसे ट्वेमप्रोक्सी या यह एक (बाद वाला पाइपलाइनिंग और एमजीईटी/एमएसईटी कमांड का समर्थन करता है)।
साथ ही मेरा सुझाव है कि Tornado अनुप्रयोगों में redis-py क्लाइंट का उपयोग करते समय कनेक्शन पूलिंग का उपयोग न करें . बस एक ही Redis
बनाएं प्रत्येक Redis डेटाबेस के लिए ऑब्जेक्ट इंस्टेंस जिससे आपका एप्लिकेशन कनेक्ट होता है।