EdsCache通用缓存框架—— (3)其他开源缓存框架对比

达芬奇密码2018-06-22 17:51
SpringCache
SpringCache提供了基于注解的缓存技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 redis),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种annotation,即能够达到缓存方法的返回对象的效果。

EdsCache基于注解的方式,也是参考的SpringCache,但SpringCache只提供了非常简单通用的功能,无法满足我们复杂的业务场景,所以EdsCache除了实现SpringCache的功能之外,还针对业务需求,实现了负载均衡、二级缓存、丰富的数据类型、批量模式、空值缓存、自动刷新、多种操作类型、缓解缓存雪崩问题、缓存一致性问题等功能。

GuavaCache
guavaCache是一个功能强大、灵活的本地缓存框架。

支持自动加载功能、支持"获取缓存-如果没有-则计算"[get-if-absent-compute]的原子语义、可灵活定制的builder接口、统计等功能。
EdsCache的自动刷新功能,也是参考的guavaCache。
目前EdsCache对缓存实例的配置,还没做到简单的通过builder接口,实现同一进程中,同时使用不同缓存配置实例的功能,这个是后续的一个优化点。

JetCache
是阿里巴巴的一款开源缓存框架,在实现完EdsCache后,了解到阿里也有提供类似的缓存框架,
也提供了注解、二级缓存、自动刷新的功能。

EdsCache与JetCache对比,针对我们业务需求提供了更丰富的功能,如负载均衡、Hash数据结构、批量模式、空值缓存、多种操作类型、缓解缓存雪崩、缓存一致性等。
JetCache提供了更灵活的Cache实例接口,在一些很复杂的缓存使用场景时,在接口上加注解反而不够灵活,JetCache通过提供了Cache接口的方式(Cache接口类似guavaCache),来达到灵活操作缓存的目的,EdsCache也可以借鉴JetCache,提供这样的接口,这个也是后续的一个优化点。

本文来自网易实践者社区,经作者陈婷授权发布。  

相关阅读:EdsCache通用缓存框架——(1)总览导航