5 个版本
0.0.4 | 2022年4月19日 |
---|---|
0.0.3 | 2022年4月19日 |
0.0.2 | 2022年4月15日 |
0.0.1 | 2022年4月14日 |
0.0.0 | 2022年4月14日 |
#323 in 缓存
19KB
433 行
已弃用
请访问 https://github.com/cargo-crates/mem_cache
CacherRs
用法
- 同步缓存
use cacher_rs::{Cacher};
let mut i32_cacher = Cacher::<i32>::new();
// expires_in_secs: 0 -> expires immediate
let v1 = i32_cacher.fetch("v1", 10, || 1);
assert_eq!(v1, &1);
let mut string_cacher = Cacher::<String>::new();
let v1 = string_cacher.fetch("v1", 10, || "1".to_string());
assert_eq!(v1, "1");
- 异步缓存
use cacher_rs::{AsyncCacher};
let mut i32_cacher = AsyncCacher::<i32>::new();
// expires_in_secs: 0 -> expires immediate
let v1 = i32_cacher.fetch("v1", 10, || Box::pin(async {
Ok(1)
})).await?;
assert_eq!(v1, &1);
let mut string_cacher = AsyncCacher::<String>::new();
let v1 = string_cacher.fetch("v1", 10, || Box::pin(async {
Ok("1".to_string())
})).await?;
assert_eq!(v1, "1");
方法
[async] fetch(key, value, closure)
如果未过期则返回缓存值,否则重新计算闭包值[async] force_fetch(key, value, closure)
强制重新计算闭包值[async] read(key)
如果缓存存在则返回键的缓存值write(key, value)
如果缓存存在,则覆盖缓存值和过期时间expire(key)
如果缓存存在,则使缓存值过期delete(key)
如果缓存存在,则删除缓存
依赖项
~130KB