1 stable release
1.0.1 | Nov 12, 2023 |
---|
#288 in Caching
45KB
1K
SLoC
quick-hash-cache
An Async Concurrent Hashmap with LRU Build a blazing fast HashMap Cache structure that can be used for web servers, databases, or other systems with high levels of concurrent access. It improves on the mostly single threaded nature of Redis and supports advanced custom data structures.
Example
use quick_hash_cache::lru::{Evict, LruCache};
#[tokio::main]
async fn main() {
let cache = LruCache::default();
for i in 0..20 {
cache.insert(i, i).await;
}
println!("{:?}", cache.get(&2).await);
let res = cache.evict_many(10, rand::thread_rng()).await;
assert_eq!(res.len(), 10);
println!("{:?}", res);
println!("{} {:?}", cache.size(), cache.get(&0).await);
println!("{} {:?}", cache.size(), cache.get(&2).await);
}
Methods
hash_builder, hash_and_shard, clear, retain, iter_shards, size, num_shards, try_maybe_contains_hash, contains_hash, contains, remove, insert, get, get_cloned, get_mut, get_or_insert, get_mut_or_insert, get_or_default, get_mut_or_default, batch_read, batch_write
Dependencies
~5–12MB
~132K SLoC