18个版本
0.8.2 | 2023年11月20日 |
---|---|
0.8.0 | 2023年1月22日 |
0.7.0 | 2021年1月13日 |
0.5.4 | 2020年11月14日 |
0.3.0 |
|
#1316 在 数据库接口
10,270 每月下载量
用于 9 个crate (5 个直接使用)
58KB
944 行
mobc-redis
示例
use mobc::Pool;
use mobc_redis::redis;
use redis::AsyncCommands;
use mobc_redis::RedisConnectionManager;
use std::time::Instant;
const TEST_KEY: &'static str = "mobc::redis::test";
#[tokio::main]
async fn main() {
let client = redis::Client::open("redis://127.0.0.1/").unwrap();
let manager = RedisConnectionManager::new(client);
let pool = Pool::builder().max_open(20).build(manager);
let mut conn = pool.get().await.unwrap();
let _: () = conn.set(TEST_KEY, "hello").await.unwrap();
const MAX: usize = 5000;
let now = Instant::now();
let (tx, mut rx) = tokio::sync::mpsc::channel::<usize>(5000);
for i in 0..MAX {
let pool = pool.clone();
let tx_c = tx.clone();
tokio::spawn(async move {
let mut conn = pool.get().await.unwrap();
let s: String = conn.get(TEST_KEY).await.unwrap();
assert_eq!(s.as_str(), "hello");
tx_c.send(i).await.unwrap();
});
}
for _ in 0..MAX {
rx.recv().await.unwrap();
}
println!("cost: {:?}", now.elapsed());
}
运行时
您可以使用 tokio 或 async-std 作为您的异步运行时。
默认为 tokio-comp
,但您可以在 mobc-redis
功能中设置以使用 async-std
。
mobc-redis= {版本= "0.7",默认-功能= false,功能= ["async-std-comp"] }
依赖
~8–20MB
~294K SLoC