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 连接?
回复
1个回答
test
2024-06-26
看源码解决了
https://github.com/redis/redis-py/blob/master/redis/client.py
if not connection_pool:
....
connection_pool = ConnectionPool(**kwargs)
...
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容