Theine: https://github.com/Yiling-J/theine-go
如果你对缓存比较熟悉,肯定听说过 Meta 的 CacheLib 。CacheLib 广泛应用在 Meta 的各类服务中,并且 Meta 内部 RocksDB 的 secondary cache 用的也是 CacheLib 。CacheLib 的一个非常重要的功能就是 Hybrid Cache ,简单来说就是把从 DRAM 驱逐出来的数据再次存入 NVM 设备中。
Theine v0.3.0 添加的 Hybrid Cache 功能就是参照了 CacheLib 的 Hybrid Cache 。通过 BigHash 和 Block Cache 两种数据结构来处理不同大小的数据。由于 Theine 本身采用了自适应 Window-TinyLFU 策略, 因此能确保各种模式的 workload 下 DRAM 部分都能有着较好的命中率,提高了整个混合缓存系统的总体性能。
稍后我会写篇文章详细介绍一下。这里先放上 CacheLib Hybrid Cache 的架构介绍,有兴趣的可以看看: Navy Overview
Theine 的目标是成为 Go 最强缓存框架,现在已经有一些用户以及开源项目在实际使用 Theine 了, 欢迎大家试用。如果有什么功能需求我觉得合理也会尽快加上。觉得不错欢迎点个 star!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.