redis-py 连接池
redis-py 连接池
import redis
pool = redis.ConnectionPool(host='127.0.0.1', port=6379,
max_connections=100, socket_timeout=2,
socket_connect_timeout=1, health_check_interval=30)
r = redis.Redis(connection_pool=pool)
# 阻塞命令用独立池/连接,别和普通请求抢:
blocking = redis.Redis(connection_pool=redis.ConnectionPool(max_connections=5))| max_connections | 池上限;各客户端之和要小于服务端 maxclients |
|---|---|
| socket_timeout | 必须设:故障时线程不会无限等待 |
| health_check | 定期探测死连接,避免复用失效连接 |
| 阻塞命令 | 单独池/连接,占用期间不归还 |
服务端 maxclients 要预留:复制连接、哨兵、监控、运维 CLI 都占额度;池加起来顶满会拒绝新连接。