#cache #hash-map #ttl #tti

endorphin

基于键值对的内存缓存库,支持自定义过期策略

2 个版本

0.1.9 2022年1月7日
0.1.8 2022年1月4日
0.1.7 2021年12月30日

#294 in 缓存

每月 45 次下载

自定义许可

98KB
2K SLoC

Endorphin

基于键值对的内存缓存库,支持使用标准HashMap、HashSet接口的 自定义过期策略

示例

use std::thread::sleep;
use std::time::Duration;

use endorphin::policy::TTLPolicy;
use endorphin::HashMap;

fn main() {
    let mut cache = HashMap::new(TTLPolicy::new());

    cache.insert("Still", "Alive", Duration::from_secs(3));
    cache.insert("Gonna", "Die", Duration::from_secs(1));

    sleep(Duration::from_secs(1));

    assert_eq!(cache.get(&"Still"), Some(&"Alive"));
    assert_eq!(cache.get(&"Gonna"), None);
}

目前,我们提供了四种预定义策略。

  • LazyFixedTTLPolicy 使用 懒过期,就像其他缓存crate一样,当访问条目后超过其TTL时,它会过期项目。
  • TTLPolicy 使用 主动过期,即使你不访问过期的条目也会过期。
  • TTIPolicy 使用 主动过期,即使你不访问过期的条目也会过期。
  • MixedPolicy 是TTL和TTI的混合策略。

依赖项

~2MB
~34K SLoC