Skip to content

高性能的本地缓存解决方案,自动维护缓存一致性,内存管理的热点消峰组件

License

Notifications You must be signed in to change notification settings

logikoisto/logicCache

Repository files navigation

logicCache

高性能的本地缓存解决方案,自动维护缓存一致性,内存管理的热点消峰组件,coding 中...

为什么要重复造轮子?

一个嵌入式的缓存DB是为了对本地缓存的扩展,传统的web服务器的本地缓存具有几点问题:

  1. 难以保持一致性,例如点赞数据的缓存如果更新其中一台,则需要额外的机制来发送失效通知
  2. 一旦重启那么本地缓存需要一段时间的预热机制,对于高负载场景可能瞬间压垮底层DB
  3. 存储在web服务器的内存中会增加内存管理的压力,如果是具有GC的语言可能造成一定的抖动
  4. 如果缓存淘汰策略设计不合理,可能导致不能及时清理内存造成OOM

logicCache就是为了解决本地缓存上述问题而开发的嵌入式组件,对于高并发场景可以没有后顾之忧的使用本地缓存进行性能加速!

组件的特性

  1. 为降低DB负载,使用租约机制保证频繁缓存失效期间,只有一次请求去查询DB更新缓存,并保证更新的一致性。
  2. 使用 Gossip 协议 在缓存节点之间传播失效通知,仅仅是发送失效通知,删除本地的缓存数据下一次请求将透传DB,这使得维护一致性更加容易
  3. 基于共享内存存储数据,以便于节点重启后缓存数据不丢失
  4. 应用层影响golang gc 使得gc停滞尽可能的被均摊
  5. 默认LRU缓存淘汰策略,支持指定前缀key的方式实现不同缓存池的淘汰策略配置

About

高性能的本地缓存解决方案,自动维护缓存一致性,内存管理的热点消峰组件

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages