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

टॉरनेडो में रेडिस कनेक्शन को संभालने का सही तरीका क्या है? (Async - पब/उप)

थोड़ी देर हो चुकी है लेकिन, मैं टॉर्नेडो-रेडिस का उपयोग कर रहा हूं। यह बवंडर के 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}

अतिरिक्त जानकारी

अधिक उदाहरण और कनेक्शन पूलिंग और पाइपलाइन जैसी अन्य सुविधाएं जीथब रेपो में पाई जा सकती हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. फेय या रेडिस पबसुब

  2. एक सेट सदस्य के लिए टीटीएल

  3. एक्सपायर टाइम एक्सप्रेस और रेडिस सेशन

  4. पिज़्ज़ा ट्राइब्स - एक मल्टीप्लेयर ब्राउज़र-आधारित रीयल-टाइम स्ट्रैटेजी गेम

  5. Redis AOF fsync (हमेशा) बनाम LSM ट्री