redis库的 Redis 类型,构造的时候接受一个 connection_pool 参数,但是这个参数怎么用呢?
1.如果是应用程序,程序起来的时候我做一个链接,把对象传来传去,或者保存为全局,就可以不用再连接直接操作了,也用不到 pool。
2.如果是Web 程序,如果用 flask, 我把对象保存到 g 下面,也用不到 pool
3.如果Web 程序用 django,每次链接都是新的,更不知道怎么用了。
import redis
class RedisClient(object):
def __init__(self, host="localhost", port=None, pwd=None, timeout=3000, max_connections=5):
self.redis = redis.StrictRedis(host=host, port=int(port), password=pwd, socket_timeout=timeout)
self.redis.connection_pool.max_connections=max_connections
Redis 的连接池是多线程安全的、多进程安全的、自动重连的。
你扔 flask.g 之类的全局的地方当然也行,反正 Redis 总是会使用连接池(不指定它每次就用一个新的)。显式指定连接池的话差异不大,反正你总是要手动在某个全局的地方存一样东西(连接池对象或者 Redis 对象)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。