对于ehcache,之前是完全陌生,只知道和hibernate联系紧密,但是现在来看其实分布式springcloud也可以结合着用。
首先看了官方文档,发现2.0是基于注解,但是2.0的东西现在都规整在3.0里,所以还是推荐使用3.0版本的依赖,目前来说是3.7最高版本?(不是很确定)
官网发给大家:http://www.ehcache.org/
1.添加依赖
<dependency> <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> <version>3.7.0</version> </dependency>
2.创建EhcacheConfig文件
@Configuration public class EhcacheConfig { @Bean("EhcacheManager") public CacheManager cacheManager() { CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder() .withCache("articles", CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, ArrayList.class, ResourcePoolsBuilder.newResourcePoolsBuilder() .heap(1, EntryUnit.ENTRIES) .offheap(2, MemoryUnit.GB) //.disk(3, MemoryUnit.GB,true) ) .build()) .build(true); return cacheManager; } }
备注一下:1.如果使用磁盘存储(例如持久化Cache
实例),则必须提供一个位置,其中数据应存储在磁盘上的CacheManagerBuilder.persistence()
静态方法中。
2.heap:为堆定义资源池(相当快,而且小),offheap:堆外定义资源池(相当快,但是有点大),disk:永久资源池(持久的,它的最后一个参数为true)
3.缓存调用方法
取值 -- cache.get(K ) 写入值 -- cache.put(K , V)