zoukankan      html  css  js  c++  java
  • 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);
    }
    }

  • 相关阅读:
    第一次博客园作业
    弹性布局/流动式布局
    元素在网页或视口上位置的相关问题求解
    element
    给body设置高度
    盒模型宽高的获取和设置
    选择器
    变量、作用域和内存问题
    js之捕捉冒泡和事件委托
    transition transform animate的使用
  • 原文地址:https://www.cnblogs.com/wangymd/p/11170380.html
Copyright © 2011-2022 走看看