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 在 数据库接口
每月下载量 12,808
用于 7 个 Crates (6 个直接使用)
51KB
1K SLoC
⚠️ 已弃用!⚠️
此 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