2个不稳定版本
0.2.0 | 2021年2月19日 |
---|---|
0.1.0 | 2021年2月18日 |
#135 in #connection-pool
10KB
161 行
redis_dumbpool
Redis连接池的真正愚蠢实现
为什么还需要另一个连接池crate?
我使用其他连接池crate的测试结果,发现每个Redis查询都会产生一个新的TIME_WAIT套接字,就像套接字每次都被丢弃并重新创建一样。试图证明这个问题,我最终得到了这个可以使用但不完美的实现。
它是如何工作的?
有一个主对象(Pool),存储一个Redis连接的Vec。Pool可以用活动连接的数量初始化。每次从池中请求连接时,它都会从Vec中弹出并测试,然后再返回。如果连接不可用且已达到最大连接数,在重试之前会执行异步睡眠。返回时,连接会被包裹在一个结构体中,该结构体的唯一目的是在drop时将连接返回到池中。
lib.rs
:
Redis-Dumbpool
Redis连接池的真正愚蠢实现
依赖项
~6–15MB
~212K SLoC