[−][src]Crate redis_async_pool
Deadpool manager for asynchronous Redis connections
redis-async-pool implements a deadpool manager for asynchronous
connections of the redis crate. Connections returned by
the pool can be used as regular redis::aio::Connection
.
Foreword
You may not need of a pool of async connections to Redis. Depending on your
workload, a multiplexed connection will be way faster. Using the ConnectionManager
provided by the redis crate, you can achieve very high performances without pooling
connections.
Features
- runtime agnostic (tested with tokio & async-std)
- optional check of connection on recycle
- optional ttl on connections
Example
use redis::AsyncCommands; use redis_async_pool::{RedisConnectionManager, RedisPool}; // Create a pool of maximum 5 connections, checked on reuse without ttl. let pool = RedisPool::new( RedisConnectionManager::new(redis::Client::open("redis://localhost:6379")?, true, None), 5, ); // get a connection with the get() async method and use it as regular redis connection let mut con = pool.get().await?; con.set(b"key", b"value").await?; let value: Vec<u8> = con.get(b"key").await?; assert_eq!(value, b"value");
You can set a ttl for each created connection by the pool, this helps avoiding huge memory consumption when keeping many connections open during a too long time.
Re-exports
pub use deadpool; |
Structs
RedisConnection | The connection created by the pool manager. |
RedisConnectionManager | Manages creation and destruction of redis connections. |
Enums
Ttl | Time to live of a connection |
Type Definitions
RedisPool | The redis connection pool |