7 个版本
0.2.1 | 2024 年 7 月 1 日 |
---|---|
0.2.0 | 2024 年 5 月 16 日 |
0.1.4 | 2024 年 1 月 17 日 |
42 在 缓存 中排名
每月下载量 3,488
在 encrypted-dns 中使用
11KB
193 行
SIEVE 缓存
这是 Rust 的 SIEVE 缓存替换算法的实现。
SIEVE 是一个比 LRU 更简单的淘汰算法,在偏斜工作负载上实现了最先进的效率。
此实现公开了与 clock-pro
和 arc-cache
crate 相同的 API,因此可以用作现有应用程序中它们的直接替代品。
使用示例
use sieve_cache::SieveCache;
// Create a new cache with a capacity of 100000.
let mut cache: SieveCache<String, String> = SieveCache::new(100000).unwrap();
// Insert key/value pairs into the cache.
cache.insert("foo".to_string(), "foocontent".to_string());
cache.insert("bar".to_string(), "barcontent".to_string());
// Remove an entry from the cache.
cache.remove("bar");
// Retrieve a value from the cache, returning `None` or a reference to the value.
assert_eq!(cache.get("foo"), Some(&"foocontent".to_string()));
// Check if a key is in the cache.
assert_eq!(cache.contains_key("bar"), false);
// Get a mutable reference to a value in the cache.
if let Some(value) = cache.get_mut("foo") {
*value = "newfoocontent".to_string();
}
// Return the number of cached values.
assert_eq!(cache.len(), 1);
// Return the capacity of the cache.
assert_eq!(cache.capacity(), 100000);