SpringCloud+Ehcache


1、pom文件引入

 <!-- https://mvnrepository.com/artifact/org.ehcache/ehcache -->
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.7.0</version>
</dependency>

 

2、磁盤存儲

@Bean("cacheManager")
public CacheManager cacheManager() {
//緩存大小設置:磁盤
ResourcePoolsBuilder cacheSize = ResourcePoolsBuilder.newResourcePoolsBuilder().disk(1, MemoryUnit.GB);
//緩存類型設置
CacheConfigurationBuilder<String, String> cacheConfigurationBuilder = CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, cacheSize);
//創建緩存管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence(new File(getStoragePath(), "askbob")))//設置存儲位置
.withCache("askbob", cacheConfigurationBuilder).build(true);//初始化,或cacheManager.init();
return cacheManager;
}
//設置磁盤路徑
private String getStoragePath() {
ApplicationHome applicationHome = new ApplicationHome(getClass());
File file = applicationHome.getDir();
return file.toString();

 

3、堆存儲

@Bean("cacheManager")
public CacheManager cacheManager() {
//緩存大小設置:堆
ResourcePoolsBuilder cacheSize = ResourcePoolsBuilder.newResourcePoolsBuilder().heap(1, EntryUnit.ENTRIES).offheap(1, MemoryUnit.GB);
//緩存類型設置
CacheConfigurationBuilder<String, String> cacheConfigurationBuilder = CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, cacheSize);
//創建緩存管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("askbob", cacheConfigurationBuilder).build(true);//初始化或cacheManager.init();
return cacheManager;
}

@Bean("ehcache")
public Cache<String, String> createCache() {
CacheManager cacheManager = cacheManager();
Cache<String, String> cache = cacheManager.getCache("askbob", String.class, String.class);
return cache;
}

 

4、緩存設置

@Bean("cacheManager")
public CacheManager cacheManager() {
//緩存大小設置:堆
ResourcePoolsBuilder cacheSize = ResourcePoolsBuilder.newResourcePoolsBuilder().heap(1, EntryUnit.ENTRIES).offheap(1, MemoryUnit.GB);
//緩存類型設置
CacheConfigurationBuilder<String, String> cacheConfigurationBuilder = CacheConfigurationBuilder
.newCacheConfigurationBuilder(String.class, String.class, cacheSize)
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(24)));//緩存超時設置
//創建緩存管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("askbob", cacheConfigurationBuilder).build(true);//初始化或cacheManager.init();
return cacheManager;
}

 

 5、測試類

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AskBobApplication.class)
public class EhcacheTest {

@Autowired
Cache<String, String> ehcache;

@Test
public void ehcachTest() {
ehcache.put("ehcach", "hello ehcach 2019");
String cache = ehcache.get("ehcach");
System.out.println(cache);
Assert.assertNotNull(cache);
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM