11 releases

Uses old Rust 2015

0.1.10 Jan 4, 2021
0.1.9 Aug 12, 2019
0.1.8 Jul 23, 2019
0.1.7 Jun 16, 2019
0.1.1 May 7, 2018

#2182 in Database interfaces

Download history 174/week @ 2024-03-15 104/week @ 2024-03-22 103/week @ 2024-03-29 77/week @ 2024-04-05 18/week @ 2024-04-12 71/week @ 2024-04-19 98/week @ 2024-04-26 86/week @ 2024-05-03 92/week @ 2024-05-10 128/week @ 2024-05-17 134/week @ 2024-05-24 178/week @ 2024-05-31 98/week @ 2024-06-07 83/week @ 2024-06-14 63/week @ 2024-06-21 12/week @ 2024-06-28

274 downloads per month
Used in r2d2_redis_cluster

MIT license

31KB
629 lines

MIT licensed

This is a Rust implementation for Redis cluster library.

Documentation is available at here.

This library extends redis-rs library to be able to use cluster. Client impletemts traits of ConnectionLike and Commands. So you can use redis-rs's access methods. If you want more information, read document of redis-rs.

Note that this library is currently not have features of Pubsub.

Example

extern crate redis_cluster_rs;

use redis_cluster_rs::{Client, Commands};

fn main() {
    let nodes = vec!["redis://127.0.0.1:6379/", "redis://127.0.0.1:6378/", "redis://127.0.0.1:6377/"];
    let client = Client::open(nodes).unwrap();
    let mut connection = client.get_connection().unwrap();

    let _: () = connection.set("test", "test_data").unwrap();
    let res: String = connection.get("test").unwrap();

    assert_eq!(res, "test_data");
}

Pipelining

extern crate redis_cluster_rs;

use redis_cluster_rs::{Client, PipelineCommands, pipe};

fn main() {
    let nodes = vec!["redis://127.0.0.1:6379/", "redis://127.0.0.1:6378/", "redis://127.0.0.1:6377/"];
    let client = Client::open(nodes).unwrap();
    let mut connection = client.get_connection().unwrap();

    let key = "test";

    let _: () = pipe()
        .rpush(key, "123").ignore()
        .ltrim(key, -10, -1).ignore()
        .expire(key, 60).ignore()
        .query(&mut connection).unwrap();
}

Dependencies

~6.5MB
~142K SLoC