#cache #capacity #ttl #time #performance #key-value-store

fastcache

一个性能良好但精度不高的基于时间和容量的 Rust 缓存

6 个版本

0.1.5 2023 年 8 月 17 日
0.1.4 2023 年 8 月 16 日

#126缓存

每月 27 次下载

MIT/Apache

10KB
153

fastcache

Crates.io Documentation License Build Status

一个性能良好但精度不高的基于时间和容量的 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