1个不稳定版本
0.1.2 | 2022年4月20日 |
---|---|
0.1.1 |
|
0.1.0 |
|
在缓存中排名第235
22KB
502 行
MemCache
用法
- cache
use mem_cache::{Cache};
let mut i32_cache = Cache::<i32>::new();
// expires_in_secs: 0 -> expires immediate
let v1 = i32_cache.fetch("v1", 10, || 1);
assert_eq!(v1, &1);
let mut string_cache = Cache::<String>::new();
let v1 = string_cache.fetch("v1", 10, || "1".to_string());
assert_eq!(v1, "1");
- 异步缓存
use mem_cache::{AsyncCache};
let mut i32_cache = AsyncCache::<i32>::new();
// expires_in_secs: 0 -> expires immediate
let v1 = i32_cache.fetch("v1", 10, || Box::pin(async {
Ok(1)
})).await?;
assert_eq!(v1, &1);
let mut string_cache = AsyncCache::<String>::new();
let v1 = string_cache.fetch("v1", 10, || Box::pin(async {
Ok("1".to_string())
})).await?;
assert_eq!(v1, "1");
方法
[async] fetch(key, expires_in_secs, closure)
如果未过期则返回缓存值或重新计算闭包值[async] force_fetch(key, expires_in_secs, closure)
强制重新计算闭包值[async] get(key)
如果存在缓存则返回键的缓存值keys()
返回所有缓存键,包括过期的缓存insert(key, value)
如果存在缓存则覆盖缓存值和过期时间expire(key)
如果存在缓存则使缓存值过期contains_key(key)
如果缓存包含给定键的条目则返回trueremove(key)
如果存在缓存则移除缓存clear_expired()
通过移除过期条目来清理缓存clear
清空所有数据,包括有效缓存。
依赖项
~130KB