थोड़ी देर हो चुकी है लेकिन, मैं टॉर्नेडो-रेडिस का उपयोग कर रहा हूं। यह बवंडर के ioloop और tornado.gen
. के साथ काम करता है मॉड्यूल
टॉर्नाडोरेडिस इंस्टॉल करें
इसे पाइप से स्थापित किया जा सकता है
pip install tornadoredis
या सेटअपटूल के साथ
easy_install tornadoredis
लेकिन आपको वास्तव में ऐसा नहीं करना चाहिए। आप रिपॉजिटरी को क्लोन भी कर सकते हैं और उसे निकाल सकते हैं। फिर दौड़ें
python setup.py build
python setup.py install
रेडिस से कनेक्ट करें
निम्नलिखित कोड आपके main.py या समकक्ष में जाता है
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connect को केवल एक बार कहा जाता है। यह एक अवरुद्ध कॉल है, इसलिए इसे मुख्य ioloop शुरू करने से पहले बुलाया जाना चाहिए। एक ही कनेक्शन ऑब्जेक्ट सभी हैंडलर के बीच साझा किया जाता है।
आप इसे अपनी एप्लिकेशन सेटिंग जैसे
. में जोड़ सकते हैंsettings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
टॉर्नाडोरेडिस का प्रयोग करें
कनेक्शन का उपयोग हैंडलर्स में self.settings['redis']
. के रूप में किया जा सकता है या इसे बेसहैंडलर वर्ग की संपत्ति के रूप में जोड़ा जा सकता है। आपका अनुरोध हैंडलर उस वर्ग को उपवर्गित करता है और संपत्ति तक पहुंचता है।
class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
रेडिस के साथ संचार करने के लिए, tornado.web.asynchronous
और tornado.gen.engine
सज्जाकार का उपयोग किया जाता है
class SomeHandler(BaseHandler):
@tornado.web.asynchronous
@tornado.gen.engine
def get(self):
foo = yield gen.Task(self.redis.get, 'foo')
self.render('sometemplate.html', {'foo': foo}
अतिरिक्त जानकारी
अधिक उदाहरण और कनेक्शन पूलिंग और पाइपलाइन जैसी अन्य सुविधाएं जीथब रेपो में पाई जा सकती हैं।