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

  • 相关阅读:
    selenium python 启动Chrome
    安装selenium python
    网络编程32
    动态生成验证码———MVC版
    C#之发送邮件【模板】+【封装】ZJ版
    【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
    Cache,MemCache,Application,Cookie等其它缓存汇总
    点击弹出li所在的序列号
    【转】js实现复制到剪贴板功能,兼容所有浏览器
    前端效果——持续更新。。。
  • 原文地址:https://www.cnblogs.com/wangymd/p/11170380.html
Copyright © 2020-2023  润新知