Ejemplo n.º 1
0
    def _init(self, server, params):
        super(RedisCache, self).__init__(params)
        self._params = params
        self._server = server
        self._pickle_version = None
        self.__master_client = None
        self.clients = []
        self.sharder = CacheSharder()

        if not isinstance(server, (list, tuple)):
            servers = [server]
        else:
            servers = server

        for server in servers:
            unix_socket_path = None
            if ':' in server:
                host, port = server.rsplit(':', 1)
                try:
                    port = int(port)
                except (ValueError, TypeError):
                    raise ImproperlyConfigured("port value must be an integer")
            else:
                host, port = None, None
                unix_socket_path = server

            kwargs = {
                'db': self.db,
                'password': self.password,
                'host': host,
                'port': port,
                'unix_socket_path': unix_socket_path,
            }
            connection_pool = pool.get_connection_pool(
                parser_class=self.parser_class,
                **kwargs
            )
            client = redis.Redis(
                connection_pool=connection_pool,
                **kwargs
            )
            self.clients.append(client)
            self.sharder.add(client, "%s:%s" % (host, port))
Ejemplo n.º 2
0
    def _init(self, server, params):
        super(RedisCache, self).__init__(params)
        self._params = params
        self._server = server
        self._pickle_version = None
        self.__master_client = None
        self.clients = []
        self.sharder = CacheSharder()

        if not isinstance(server, (list, tuple)):
            servers = [server]
        else:
            servers = server

        for server in servers:
            unix_socket_path = None
            if ':' in server:
                host, port = server.rsplit(':', 1)
                try:
                    port = int(port)
                except (ValueError, TypeError):
                    raise ImproperlyConfigured("port value must be an integer")
            else:
                host, port = None, None
                unix_socket_path = server

            kwargs = {
                'db': self.db,
                'password': self.password,
                'host': host,
                'port': port,
                'unix_socket_path': unix_socket_path,
            }
            connection_pool = pool.get_connection_pool(
                parser_class=self.parser_class,
                **kwargs
            )
            client = redis.Redis(
                connection_pool=connection_pool,
                **kwargs
            )
            self.clients.append(client)
            self.sharder.add(client, "%s:%s" % (host, port))
Ejemplo n.º 3
0
class RedisCache(BaseCache):

    def __init__(self, server, params):
        """
        Connect to Redis, and set up cache backend.
        """
        self._init(server, params)

    def _init(self, server, params):
        super(RedisCache, self).__init__(params)
        self._params = params
        self._server = server
        self._pickle_version = None
        self.__master_client = None
        self.clients = []
        self.sharder = CacheSharder()

        if not isinstance(server, (list, tuple)):
            servers = [server]
        else:
            servers = server

        for server in servers:
            unix_socket_path = None
            if ':' in server:
                host, port = server.rsplit(':', 1)
                try:
                    port = int(port)
                except (ValueError, TypeError):
                    raise ImproperlyConfigured("port value must be an integer")
            else:
                host, port = None, None
                unix_socket_path = server

            kwargs = {
                'db': self.db,
                'password': self.password,
                'host': host,
                'port': port,
                'unix_socket_path': unix_socket_path,
            }
            connection_pool = pool.get_connection_pool(
                parser_class=self.parser_class,
                **kwargs
            )
            client = redis.Redis(
                connection_pool=connection_pool,
                **kwargs
            )
            self.clients.append(client)
            self.sharder.add(client, "%s:%s" % (host, port))

    @property
    def params(self):
        return self._params or {}

    @property
    def options(self):
        return self.params.get('OPTIONS', {})

    @property
    def db(self):
        _db = self.params.get('db', self.options.get('DB', 1))
        try:
            _db = int(_db)
        except (ValueError, TypeError):
            raise ImproperlyConfigured("db value must be an integer")
        return _db

    @property
    def password(self):
        return self.params.get('password', self.options.get('PASSWORD', None))

    @property
    def parser_class(self):
        cls = self.options.get('PARSER_CLASS', None)
        if cls is None:
            return DefaultParser
        mod_path, cls_name = cls.rsplit('.', 1)
        try:
            mod = importlib.import_module(mod_path)
            parser_class = getattr(mod, cls_name)
        except AttributeError:
            raise ImproperlyConfigured("Could not find parser class '%s'" % parser_class)
        except ImportError, e:
            raise ImproperlyConfigured("Could not find module '%s'" % e)
        return parser_class
Ejemplo n.º 4
0
class RedisCache(BaseCache):

    def __init__(self, server, params):
        """
        Connect to Redis, and set up cache backend.
        """
        self._init(server, params)

    def _init(self, server, params):
        super(RedisCache, self).__init__(params)
        self._params = params
        self._server = server
        self._pickle_version = None
        self.__master_client = None
        self.clients = []
        self.sharder = CacheSharder()

        if not isinstance(server, (list, tuple)):
            servers = [server]
        else:
            servers = server

        for server in servers:
            unix_socket_path = None
            if ':' in server:
                host, port = server.rsplit(':', 1)
                try:
                    port = int(port)
                except (ValueError, TypeError):
                    raise ImproperlyConfigured("port value must be an integer")
            else:
                host, port = None, None
                unix_socket_path = server

            kwargs = {
                'db': self.db,
                'password': self.password,
                'host': host,
                'port': port,
                'unix_socket_path': unix_socket_path,
            }
            connection_pool = pool.get_connection_pool(
                parser_class=self.parser_class,
                **kwargs
            )
            client = redis.Redis(
                connection_pool=connection_pool,
                **kwargs
            )
            self.clients.append(client)
            self.sharder.add(client, "%s:%s" % (host, port))

    @property
    def params(self):
        return self._params or {}

    @property
    def options(self):
        return self.params.get('OPTIONS', {})

    @property
    def db(self):
        _db = self.params.get('db', self.options.get('DB', 1))
        try:
            _db = int(_db)
        except (ValueError, TypeError):
            raise ImproperlyConfigured("db value must be an integer")
        return _db

    @property
    def password(self):
        return self.params.get('password', self.options.get('PASSWORD', None))

    @property
    def parser_class(self):
        cls = self.options.get('PARSER_CLASS', None)
        if cls is None:
            return DefaultParser
        mod_path, cls_name = cls.rsplit('.', 1)
        try:
            mod = importlib.import_module(mod_path)
            parser_class = getattr(mod, cls_name)
        except AttributeError:
            raise ImproperlyConfigured("Could not find parser class '%s'" % parser_class)
        except ImportError, e:
            raise ImproperlyConfigured("Could not find module '%s'" % e)
        return parser_class