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数据库接口

Download history 187/week @ 2024-05-02 72/week @ 2024-05-09 195/week @ 2024-05-16 553/week @ 2024-05-23 185/week @ 2024-05-30 173/week @ 2024-06-06 237/week @ 2024-06-13 165/week @ 2024-06-20 227/week @ 2024-06-27 418/week @ 2024-07-04 149/week @ 2024-07-11 323/week @ 2024-07-18 365/week @ 2024-07-25 127/week @ 2024-08-01 417/week @ 2024-08-08 637/week @ 2024-08-15

1,561 每月下载量
4 crates 中使用

自定义许可证

1.5MB
36K SLoC

一个用于Rust的异步Redis客户端。

Crate docs.rs Build License

文档

官方文档

理念

  • 低分配
  • 完全异步库
  • 无锁实现
  • Rust风格API
  • 多路复用作为核心特性

特性

基本用法

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(())
}

测试

  1. redis 目录下,运行 docker_up.shdocker_up.cmd
  2. 运行 cargo test --features pool,redis-stack,tokio-tls(Tokio运行时)
  3. 运行 cargo test --no-default-features --features redis-stack,async-std-runtime,async-std-tls (async-std 运行时)

基准测试

  1. redis 目录下,运行 docker_up.shdocker_up.cmd
  2. 运行 cargo bench

依赖项

~5–18MB
~261K SLoC