#redis #cluster #database #r2d2 #pool

r2d2_redis_cluster

Redis cluster support for the r2d2 connection pool

7 releases

Uses old Rust 2015

0.1.6 Jan 4, 2021
0.1.5 Jul 23, 2019
0.1.4 Jun 16, 2019
0.1.3 May 4, 2019
0.1.0 May 7, 2018

#305 in Database interfaces

Download history 11/week @ 2021-06-02 23/week @ 2021-06-09 30/week @ 2021-06-16 9/week @ 2021-06-23 11/week @ 2021-06-30 14/week @ 2021-07-07 121/week @ 2021-07-14 277/week @ 2021-07-21 175/week @ 2021-07-28 208/week @ 2021-08-04 130/week @ 2021-08-11 80/week @ 2021-08-18 90/week @ 2021-08-25 115/week @ 2021-09-01 147/week @ 2021-09-08 44/week @ 2021-09-15

159 downloads per month

MIT license

7KB
84 lines

MIT licensed

Redis cluster support for the r2d2 connection pool.

Documentation is available at here.

Example

extern crate r2d2_redis_cluster;

use std::thread;

use r2d2_redis_cluster::{r2d2::Pool, Commands, RedisClusterConnectionManager};

fn main() {
    let redis_uri = vec!["redis://127.0.0.1:6379", "redis://127.0.0.1:6378", "redis://127.0.0.1:6377"];
    let manager = RedisClusterConnectionManager::new(redis_uri).unwrap();
    let pool = Pool::builder()
        .build(manager)
        .unwrap();

    let mut handles = Vec::new();

    for _ in 0..10 {
        let pool = pool.clone();
        handles.push(thread::spawn(move || {
            let connection = pool.get().unwrap();
            let n: u64 = connection.incr("test", 1).unwrap();
        }));
    }

    for h in handles {
        h.join().unwrap();
    }

    let mut connection = pool.get().unwrap();
    let res: u64 = connection.get("test").unwrap();

    assert_eq!(res, 10);
}

Dependencies

~6MB
~132K SLoC