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);
    }
    }

  • 相关阅读:
    浅谈页面中的焦点
    简单的jQuery幻灯片实现
    从is(":checked")说起
    通过Javascript得到URL中的参数(query string)
    Javascript设置对象属性为"只读"
    Javascript判断两个日期是否相等
    利用HttpWebRequest访问WebApi
    利用Newtonsoft.Json实现Json序列化与反序列化
    在ASP.NET MVC中以post方式传递数组参数的示例
    SQL Server 锁表、查询被锁表、解锁相关语句
  • 原文地址:https://www.cnblogs.com/wangymd/p/11170380.html
Copyright © 2011-2022 走看看