#连接池 #Redis #健康检查 #空闲 #通用 #懒加载 #poolx

poolx-redis

poolx for redis,具有空闲连接检查和回收、健康检查等功能

1 个不稳定版本

0.1.2 2024 年 3 月 1 日

#2600数据库接口

MIT/Apache

98KB
1K SLoC

Poolx 是 Rust 的通用连接池实现,其原始代码来自 sqlx,我已经对其进行了很多修改,使其更加通用并删除了大量无用代码。

功能

  • 借用的测试
  • 带有超时检查的空闲连接
  • 自定义关闭/ping 方法实现
  • 懒连接

示例用法

#[tokio::main]
async fn main() {
    let url = "redis://:[email protected]:6379";
    let option = url.parse::<RedisConnectionOption>().unwrap();

    let pool: Pool<RedisConnection> = PoolOptions::new()
        .test_before_acquire(true)
        .idle_timeout(std::time::Duration::from_secs(3))
        .min_connections(3)
        .max_connections(100)
        .connect_lazy_with(option);

    for i in 0..10 {
        let mut conn = pool.acquire().await.unwrap();
        let reply: String = cmd("PING").query_async(conn.as_mut()).await.unwrap();
        println!("reply: {}", reply);
    }
}

依赖

~7–19MB
~242K SLoC