#连接池 #redis #bb8-connection #tokio #r2d2 #池化

bb8-redis

功能齐全的异步(基于tokio)redis连接池(类似于r2d2)

18个版本 (重大变更)

0.16.0 2024年8月1日
0.15.0 2024年3月11日
0.14.0 2023年12月6日
0.13.1 2023年5月31日
0.3.0 2019年3月18日

#436数据库接口

Download history 9010/week @ 2024-05-04 10555/week @ 2024-05-11 8469/week @ 2024-05-18 16480/week @ 2024-05-25 32735/week @ 2024-06-01 20229/week @ 2024-06-08 17421/week @ 2024-06-15 14095/week @ 2024-06-22 9374/week @ 2024-06-29 31459/week @ 2024-07-06 36951/week @ 2024-07-13 41424/week @ 2024-07-20 41801/week @ 2024-07-27 32697/week @ 2024-08-03 58255/week @ 2024-08-10 39950/week @ 2024-08-17

176,172 每月下载量
20 个Crates中(19 个直接) 使用

MIT 许可证

47KB
951

bb8连接池的Redis支持。

示例

use futures_util::future::join_all;
use bb8_redis::{
    bb8,
    redis::{cmd, AsyncCommands},
    RedisConnectionManager
};

#[tokio::main]
async fn main() {
    let manager = RedisConnectionManager::new("redis://127.0.0.1").unwrap();
    let pool = bb8::Pool::builder().build(manager).await.unwrap();

    let mut handles = vec![];

    for _i in 0..10 {
        let pool = pool.clone();

        handles.push(tokio::spawn(async move {
            let mut conn = pool.get().await.unwrap();

            let reply: String = cmd("PING").query_async(&mut *conn).await.unwrap();

            assert_eq!("PONG", reply);
        }));
    }

    join_all(handles).await;
}

依赖项

~7–16MB
~222K SLoC