13 个版本 (7 个破坏性版本)

0.8.1 2023 年 8 月 10 日
0.8.0 2023 年 4 月 5 日
0.7.2 2023 年 2 月 7 日
0.7.0 2021 年 7 月 16 日
0.1.1 2019 年 11 月 15 日

#151数据库接口

Download history 726/week @ 2024-04-08 1490/week @ 2024-04-15 1862/week @ 2024-04-22 1375/week @ 2024-04-29 3718/week @ 2024-05-06 1779/week @ 2024-05-13 2436/week @ 2024-05-20 774/week @ 2024-05-27 1335/week @ 2024-06-03 2142/week @ 2024-06-10 2443/week @ 2024-06-17 3317/week @ 2024-06-24 2645/week @ 2024-07-01 3393/week @ 2024-07-08 3977/week @ 2024-07-15 2779/week @ 2024-07-22

每月下载量 12,808
用于 7 个 Crates (6 个直接使用)

MIT 许可协议

51KB
1K SLoC

MIT licensed

⚠️ 已弃用!⚠️

此 crate 的功能已合并到主 redis-rs 项目中。

⚠️ 已弃用!⚠️

一个实现 Redis 集群客户端的 Rust crate。

文档可在 此处 查看。

此库基于 redis-rs crate 来支持与 Redis 集群(而不是单个 Redis 节点)一起工作。

示例

extern crate futures;
extern crate tokio;
use futures::prelude::*;
use redis_cluster_async::{Client, redis::cmd};

fn main() {
    let nodes = vec!["redis://127.0.0.1:6379/", "redis://127.0.0.1:6378/", "redis://127.0.0.1:6377/"];

    let mut runtime = tokio::runtime::Runtime::new().unwrap();

    let client = Client::open(nodes).unwrap();
    let (_, res): (_, String) = runtime.block_on(client.get_connection()
        .and_then(|connection| {
            cmd("SET").arg("test").arg("test_data").clone()
                .query_async(connection)
                .and_then(|(connection, ())|
                    cmd("GET").arg("test")
                        .query_async(connection)
                )
        })
        )
        .unwrap();

    assert_eq!(res, "test_data");
}

管道化

extern crate futures;
extern crate tokio;

use futures::prelude::*;
use redis_cluster_async::{Client, redis::{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 mut runtime = tokio::runtime::Runtime::new().unwrap();

    let client = Client::open(nodes).unwrap();
    let _: (_, ()) = runtime.block_on(
        client.get_connection().and_then(|connection| {
            let key = "test";

            pipe()
                .rpush(key, "123").ignore()
                .ltrim(key, -10, -1).ignore()
                .expire(key, 60).ignore()
                .query_async(connection)
        }))
        .unwrap();

}

致谢

本项目基于 https://github.com/atuk721/redis-cluster-rs 中的同步 redis 集群实现。

依赖项

~7–18MB
~272K SLoC