6 个版本
0.1.5 | 2023 年 8 月 17 日 |
---|---|
0.1.4 | 2023 年 8 月 16 日 |
#126 在 缓存
每月 27 次下载
10KB
153 行
fastcache
一个性能良好但精度不高的基于时间和容量的 Rust 缓存。
该包提供了一个基于生存时间(TTL)和容量的缓存实现。它存储键值对,并基于 TTL 自动删除过期的条目。
设计在精确的基于 TTL 的过期和更好的性能之间做了权衡,这意味着过期的项可能不会立即在过期时被删除,一个项可能在到期之前被删除。
设计上,get
可能会返回过期的项,这意味着调用者在使用之前应该通过调用 value.is_expired()
检查返回值的过期状态。是否使用过期的值取决于用户。
这种设计在某些情况下可能很有用,例如,当调用者希望将过期值用作后备或进行后台 rpc 以更新值,并立即返回过期值以减少延迟时。
示例
use fastcache::Cache;
use std::time::Duration;
let cache = Cache::new(3, Duration::from_secs(3600)); // Capacity: 3, TTL: 1 hour
cache.insert("key1", "value1");
cache.insert("key2", "value2");
if let Some(value) = cache.get("key1") {
println!("Value: {}", value.get());
} else {
println!("Value not found");
}
许可证
fastcache
在 MIT 许可证和 Apache 许可证(版本 2.0)下双许可。
贡献
欢迎任何形式的贡献。请随意提交拉取请求或问题。
依赖项
~1.8–7.5MB
~36K SLoC