redis-py 默认有连接池吗?

redis-py 默认有连接池吗?

redis-py 在和后端框架做集成的时候,我好奇 redis-py 和 redis server 之间的连接管理机制

比如, 假设后端框架是多线程模型,每来一个 http 请求,都会新开一个线程去处理改 HTTP 请求,视图函数内,要访问 redis server 根据 key 取 value 并且返回给 http client

假设 redis_client 作为全局变量

redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)

视图函数里面调用 redis_client

value = redis_client.get('my_key')

那么此时此刻,redis-py 会为每个线程都创建一个独立隔离的 TCP 连接并且在线程结束之后就销毁 redis 连接吗?

还是说 redis-py 内部维护了一套复用和 redis server 通讯的 redis 连接?


回答:

看源码解决了

https://github.com/redis/redis-py/blob/master/redis/client.py

if not connection_pool:

....

connection_pool = ConnectionPool(**kwargs)

...

以上是 redis-py 默认有连接池吗? 的全部内容, 来源链接: utcz.com/p/939019.html

回到顶部