8 releases (5 breaking)
0.6.0 | Sep 16, 2024 |
---|---|
0.5.1 | Aug 20, 2024 |
0.5.0 | Jul 31, 2024 |
0.4.0 | Apr 12, 2024 |
0.1.1 | Sep 7, 2023 |
#1004 in Database interfaces
853 downloads per month
Used in 3 crates
17KB
287 lines
RedisPool
License
This project is licensed under either Apache License, Version 2.0, zlib License, or MIT License, at your option.
Help
If you need help with this library or have suggestions please go to our Discord Group
Install
RedisPool uses tokio
runtime.
# Cargo.toml
[dependencies]
redis_pool = "0.6.0"
Cargo Feature Flags
cluster
: Enables Redis Cluster Client and connections.
Example
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:YourSecretPassWord@127.0.0.1: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()
}
Running Tests
Docker must be installed because this library utilizes testcontainers to spin up redis intances. Additionally, the images contained in the docker
directory need to be built and accessible in your local registry; this can be accomplished by running ./docker/build.sh
.
Dependencies
~8–17MB
~218K SLoC