1个不稳定版本

0.1.2 2022年4月20日
0.1.1 2022年4月20日
0.1.0 2022年4月19日

缓存中排名第235

MIT/Apache

22KB
502

MemCache  

ci Latest Version downloads

用法

  • 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) 如果缓存包含给定键的条目则返回true
  • remove(key) 如果存在缓存则移除缓存
  • clear_expired() 通过移除过期条目来清理缓存
  • clear 清空所有数据,包括有效缓存。

依赖项

~130KB