3 个版本
0.1.2 | 2024 年 7 月 27 日 |
---|---|
0.1.1 | 2024 年 7 月 26 日 |
0.1.0 | 2024 年 7 月 26 日 |
#1474 在 数据库接口
每月 382 次下载
17KB
372 代码行
rdcache
Rust 版本的 rockscache
特性
- 在相同时间只对相同键执行一次异步任务,不同的应用程序。
- 使用 MessagePack 缓存数据。
示例
use std::time::Duration;
use rdcache::{Client, Options};
use rustis::client::Client as RedisClient;
#[tokio::main]
async fn main() {
let rdb = RedisClient::connect("127.0.0.1:6379").await.unwrap();
let client = Client::new(rdb, Options::default());
let key = "key";
let r = client
.fetch(key, Duration::from_secs(600), || async {
println!("Fetching data from the database");
Ok(Some("data".to_string()))
})
.await;
println!("{:?}", r);
client.tag_as_deleted(key).await.unwrap();
let r = client
.fetch(key, Duration::from_secs(600), || async {
println!("Fetching data from the database");
Ok(Some("data2".to_string()))
})
.await;
println!("{:?}", r);
}
输出将类似于
Fetching data from the database
Ok(Some("data"))
Fetching data from the database
Ok(Some("data2"))
依赖
~9–19MB
~275K SLoC