#hash-map #cache #advanced #structures #redis #multi-threading #concurrency

quick-hash-cache

异步并发哈希表。与Redis不同,它支持多线程和高级数据结构

1个稳定版本

1.0.1 2023年11月12日

#260缓存

MIT 许可证

45KB
1K SLoC

quick-hash-cache

具有LRU功能的异步并发哈希表。构建一个快速的HashMap缓存结构,可用于Web服务器、数据库或其他具有高并发访问级别的系统。它改进了Redis主要单线程的特性,并支持高级自定义数据结构。

示例

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);
}

方法

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

依赖关系

~5–8MB
~132K SLoC