def create_from_config(config, prefix=''):
"""Redis client instantiation from settings.
"""
settings = config.get_settings()
uri = settings[prefix + 'url']
uri = urlparse.urlparse(uri)
pool_size = int(settings[prefix + 'pool_size'])
kwargs = {
"max_connections": pool_size,
"host": uri.hostname or 'localhost',
"port": uri.port or 6379,
"password": uri.password or None,
"db": int(uri.path[1:]) if uri.path else 0
}
block_timeout = settings.get(prefix + 'pool_timeout')
if block_timeout is not None:
kwargs["timeout"] = float(block_timeout)
connection_pool = redis.BlockingConnectionPool(**kwargs)
return redis.StrictRedis(connection_pool=connection_pool)
评论列表
文章目录