项目地址 /ai-market-guide/ Umem-cache Umem-cache 是一个用户空间键值对缓存。它的目标是做到全世界最好。
在基于 Zipf 分布且键值对大小在 1KB 以内的基准测试中,Umem-cache 的命中率比 Memcached 和 Redis 高 出 10%,命中吞吐量高出 50%。特性 强一致 缓存数据能够与后端数据库保持完全同步。
换言之,你不会取到旧数据。反缓存击穿 反缓存击穿是内置的。
缓存击穿是指当某个热键首次进入缓存时,每个人都争相将其缓存,从而给后方数据库带来压力。反缓存击 穿通过仅允许一个连接执行缓存工作来避免这种情况。
内存碎片化 我们没有内存碎片化问题,我们会通过移动键值对的存储位置来紧凑化内存布局。严格控制内存使用 我们充分尊重用户的配置。
我们对内存使用(包括哈希表的内存占用)进行精确控制,增加键值对的数量 不会导致额外的内存消耗,并且哈希表的大小是根据管理的键值对的数量动态调整的。多线程 我们提供多线程配置以充分发挥机器的性能。
除了主线程和配置指定的工作线程外,我们不会创建其他线程。无锁 我们的多线程方案是无锁的,不存在随着线程数量上升反而导致性能下降的情况。
TLS 我们提供了可选的 TLS 配置,该配置使用 mTLS 双向身份验证。集群 我们提供可选的集群配置,它基于 raft 共识算法实现,提供一致性和可用性保证。
任意的键和值 键和值可以是任意字节数组,除了在使用单例时键的长度需要限制在 255 字节以内,使用集群时键的长度需要限制在 247 字节以内。