Ehcache与Guava Cache的区别浅谈

最近在做一些缓存改造的场景,有如下一些经验总结:

  • Ehcache支持持久化到本地磁盘,Guava不可以
  • Ehcache有现成的集群解决方案,Guava没有。不过个人感觉比较鸡肋,对JVM级别的缓存来讲太重了
  • Ehcache jar包庞大,Guava Cache只是Guava jar包中的工具之一,而且后者远远小于Ehcache
  • 两种缓存当缓存过期或者没有命中的时候都可以通过load接口重载数据,调用方式略有不同。两者的主要区别是Ehcache的缓存load的时候,允许用户返回null,而Guava Cache则不允许返回为null,因为Guava Cache是根据value的值是否为null来判断是否需要load,所以不允许返回为null,但是使用的时候可以使用空对象替换。不允许返回null是一个很好的考虑
  • Ehcache有内存占用大小统计,Guava Cache没有,需要自己开发
  • Ehcache在put缓存的时候,对K、V都做了包装,对GC有一定影响

什么时候适用Ehcache、什么时候适用Guava cache?

首先,两者都是很成熟的JVM级别缓存,所以在绝大多数情况都是可以满足要求的

适用Ehcache的情况

  • 需要持久化持久化。使用持久化功能需要,缓存稳定,以免持久化的数据不准确影响结果
  • 有集群解决方案。

适用Guava cache的情况

Guava cache说简单点就是一个支持LRU的ConCurrentHashMap,它没有Ehcache那么多的各种特性,只是提供了增、删、改、查、刷新规则和时效规则设定等最基本的元素。做一个jar包中的一个功能之一,Guava cache极度简洁并能满足觉大部分人的要求

总结

Ehcache有着全面的缓存特性,但是略重。Guava cache有最基本的缓存特性,很轻。大家根据具体情况选择使用

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/brief-discussion-on-differences-between-ehcache-and-guava-cache/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Ehcache与Guava Cache的区别浅谈
最近在做一些缓存改造的场景,有如下一些经验总结: Ehcache支持持久化到本地磁盘,Guava不可以 Ehcache有现成的集群解决方案,Guava没有。不过个人感觉比较……
<<上一篇
下一篇>>
文章目录
关闭
目 录