参考链接:https://blog.csdn.net/vbirdbest/article/details/72763048
ehcache与redis比较
- ehcache通常和redis一块使用
- ehcache直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。
- redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多, 处理集群和分布式缓存方便,有成熟的方案。如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。
Demo
1.pom.xml
1 | <!--EhCache--> |
2.增加配置,可以再resource文件夹下增加
默认情况下Ehcache会自动加载classpath根目录下名为ehcache.xml文件,也可以将该文件放到其他地方在使用时指定文件的位置
1 | <?xml version="1.0" encoding="UTF-8"?> |
也可以直接写在文件里,Ehcacheconfig.java:
1 |
|
3.这里对cache做简单的封装:
先对Cache api做下了解,
方法 | 解释 |
---|---|
add(request) | 添加一个请求到缓存 |
addAll(List requesets) | 添加一系列请求到缓存 |
delete(request,[oprions]) | options可选择如何处理匹配的缓存,有ignoreSearch、ignoreMethod、ignoreVary |
keys(request,[options]) | 参数和delete一样,该方法返回一个Promise,即一个Cache键的数组 |
match(request,[options]) | request为想要在cache中查找的Promise对象 |
matchAll(List requests,[options]) | 同上 |
put(request,response) | 允许将键值对存到当前缓存 |
工具类-EhCacheService
1 |
|
使用:
这里拿一个现成的redisConsumer的例子来使用ehcache
1 | /** |