7 个版本 (4 个破坏性更新)
新 0.5.1 | 2024年8月20日 |
---|---|
0.5.0 | 2024年7月31日 |
0.4.0 | 2024年4月12日 |
0.3.0 | 2023年12月21日 |
0.1.1 | 2023年9月7日 |
#1081 在 数据库接口
每月685 次下载
用于 2 crates
17KB
287 行
RedisPool
提供 Redis 池的库。
许可证
该项目受以下任一许可证的许可:Apache 许可证 2.0 版、zlib 许可证或 MIT 许可证,您可选择。
帮助
如果您需要有关此库的帮助或提出建议,请访问我们的 Discord 群组
安装
RedisPool 使用 tokio
运行时。
# Cargo.toml
[dependencies]
redis_pool = "0.5.0"
Cargo 功能标志
cluster
:启用 Redis 集群客户端和连接。
示例
use redis_pool::{RedisPool, SingleRedisPool};
use axum::{Router, routing::get, extract::State};
use tokio::net::TcpListener;
#[tokio::main]
async fn main() {
let redis_url = "redis://default:[email protected]:6379/0";
let client = redis::Client::open(redis_url).expect("Error while testing the connection");
let pool = RedisPool::from(client);
// build our application with some routes
let app = Router::new()
.route("/test", get(test_pool))
.with_state(pool);
// run it
let listener = TcpListener::bind("127.0.0.1:3000").await.unwrap();
axum::serve(listener, app).await.unwrap();
}
async fn test_pool(State(pool): State<SingleRedisPool>) -> String {
let mut connection = pool.acquire().await.unwrap();
let _: () = redis::pipe()
.set(0, "Hello")
.ignore()
.query_async(&mut connection)
.await
.unwrap();
redis::cmd("GET").arg(0).query_async(&mut connection).await.unwrap()
}
运行测试
Docker 必须安装,因为此库利用 testcontainers 启动 redis 实例。此外,docker
目录中的镜像需要构建并在您的本地注册表中可访问;这可以通过运行 ./docker/build.sh
完成。
依赖项
~7–16MB
~226K SLoC