Найти - Пользователи
Полная версия: django + redis
Начало » Django » django + redis
1 2
Suguby27
import redis
class RedisConnector():
     def __init__(self):
          self.cursor =  redis.Redis()
     def get_cursor(self):
          return self.cursor
connector = RedisConnector()

Потом в этом классе можно переделать что хочешь - пулы коннектов и прочее, интерфейс общения останется один.

использование
from my_redis_connector import connector
cursor = connector.get_cursor()

или вообще всё исполнение запросов выполнять в классе RedisConnector. что-то типа

from my_redis_connector import connector
data = connector.get_data_by_key(key='bla=bla-bla')

советую изучить ООП подход в программировании.
hound
Suguby27
если пойти дальше, то можно что-то тогда в таком духе сделать:
import redis
class RedisCursor(object):
    __instance = None
    def __new__(cls, val):
        if RedisCursor.__instance is None:
            self.cursor = redis.Redis()
        RedisCursor.__instance.val = val
        return RedisCursor.__instance

Взято из:
http://python-3-patterns-idioms-test.readthedocs.org/en/latest/Singleton.html

Хотя Ваш вариант компактнее.
Suguby27
Это пример синглетона, пока не надо лазить в мета-программирование, изучите обычные способы. А то будете ловить котов в мешке из-за переопределения “системных” вызовов (это я насчет __new__).
В моем примере обьект создается в модуле и оттуда юзатеся - так проще для понимания и сопровождения.
hound
Suguby27
Согласен. Благодарю за помощь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB