10 | 技术选型:Ehcache、Guava Cache、Spring Cache

问题场景

一个系统经过压测发现并发能力不理想,需要加缓存,已知:对一致性要求不高,需要缓存的数据量也可控,问:该如何选择缓存框架?

  • 这个情况的话,用客户端缓存就行了,客户端缓存有很多框架可供选择:Ehcache、Guava Cache、Spring Cache;

Ehcache 特点

  • 多级缓存策略,可以嵌入 Hibernate,Mybatis 中;
  • 缓存的数据可以放在内存或磁盘中;
  • 缓存的数据在 JVM 重启的时候可以写入磁盘中;
  • 可以使用 RMI 或接口的方式实现分布式缓存;
  • 允许注册事件来监听缓存,当缓存的数据增删改的时候,可以收到一个通知;

Guava Cache 特点

  • 相对于 CurrentHashMap,会限制内存的使用,会自动回收内存;

Spring Cache

  • 通过少量配置就可以使得既有代码支持缓存;
  • 不用安装或部署额外的第三方组件就可以使用缓存;
  • 支持 Spring Express Language,可以支持变量的定义和一些表达式;
  • 支持 AspectJ,通过注解,可以实现缓存的提前加载或删除;
  • 支持自定义 key,具有相当的灵活性和扩展性;

客户端缓存的区别与选型

缓存框架能否持久化是否有集群方案体积是否庞大是否有辅助功能是否轻量
Ehcahe相对大
Guava Cache
Spring Cache
  • Spring Cache 不仅可以自己使用,还可以与其他缓存框架做整合;
  • 对于文章一开始的场景,可以使用 Spring Cache + Ehcache 的组合方式;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值