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