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 AsyncCommands;
use ;
// Create a pool of maximum 5 connections, checked on reuse without ttl.
let pool = new;
// get a connection with the get() async method and use it as regular redis connection
let mut con = pool.get.await?;
con.set.await?;
let value: = con.get.await?;
assert_eq!;
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.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.