36个版本
0.13.3 | 2024年5月25日 |
---|---|
0.13.1 | 2024年4月21日 |
0.12.9 | 2024年3月12日 |
0.12.8 | 2023年12月29日 |
0.7.1 | 2022年12月30日 |
#79 在 数据库接口
1,561 每月下载量
在 4 crates 中使用
1.5MB
36K SLoC
一个用于Rust的异步Redis客户端。
文档
理念
- 低分配
- 完全异步库
- 无锁实现
- Rust风格API
- 多路复用作为核心特性
特性
- 包含多个示例的完整文档
- 支持Redis 7.0之前的所有Redis命令
- 异步支持 (tokio 或 async-std)
- 不同的客户端模式
- 自动命令批处理
- 高级重连和重试策略
- 管道支持
- 使用Redis URL或专用构建器进行配置
- TLS支持
- 事务支持
- 发布/订阅支持
- 哨兵支持
- LUA脚本/函数支持
- 集群支持(支持的最低Redis版本为6)
- Redis Stack支持
基本用法
use rustis::{
client::Client,
commands::{FlushingMode, ServerCommands, StringCommands},
Result,
};
#[tokio::main]
async fn main() -> Result<()> {
// Connect the client to a Redis server from its IP and port
let client = Client::connect("127.0.0.1:6379").await?;
// Flush all existing data in Redis
client.flushdb(FlushingMode::Sync).await?;
// sends the command SET to Redis. This command is defined in the StringCommands trait
client.set("key", "value").await?;
// sends the command GET to Redis. This command is defined in the StringCommands trait
let value: String = client.get("key").await?;
println!("value: {value:?}");
Ok(())
}
测试
- 在
redis
目录下,运行docker_up.sh
或docker_up.cmd
- 运行
cargo test --features pool,redis-stack,tokio-tls
(Tokio运行时) - 运行
cargo test --no-default-features --features redis-stack,async-std-runtime,async-std-tls
(async-std 运行时)
基准测试
- 在
redis
目录下,运行docker_up.sh
或docker_up.cmd
- 运行
cargo bench
依赖项
~5–18MB
~261K SLoC