码迷,mamicode.com
首页 > 编程语言 > 详细

springcache集成Guava 设置缓存时间

时间:2019-05-27 19:30:50      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:pre   而且   set   设定   tca   red   tree   tps   使用   

上一篇讲到了springboot集成springcahce :https://www.cnblogs.com/a565810497/p/10931426.html

但是缓存的有效时间无法设定。

这里就讲一下如何使用guava设定springcahce的有效时间

第一步:添加maven依赖:

            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>25.1-jre</version>
        </dependency>

 

第二步,配置cacheManager:

  @Bean
    public CacheManager cacheManager(){
        GuavaCacheManager cacheManager = new GuavaCacheManager();
        cacheManager.setCacheBuilder(CacheBuilder.newBuilder().expireAfterAccess(2,TimeUnit.SECONDS));//这里就是设置有效时长,我设置了2秒
        return cacheManager;
    }

我把这代码写到了启动类里去。

这里

expireAfterAccess就是设置有效时间了,这里有多个用法,有读写后刷新,有固定刷新,详细的可以参考:https://blog.csdn.net/abc86319253/article/details/53020432

我们看一下测试代码:

@Test
    public void getTime() throws InterruptedException {
        int i = 1;
        while (i <= 20) {
            log.info("" + "第" + i + "次获取时间" + testTimeService.getTestTime());
            i++;
            if (i <= 10) {
                Thread.sleep(1000);
            } else {
                Thread.sleep(3000);
            }
        }
    }

我们进行获取20次时间,前10次,每隔一秒拿一次,这样缓存不会过期,拿到的时间应该都是一样的,

后面10次就隔3秒拿一次,这个时候缓存已经到期了拿到的应该不是缓存内的时间,应该是最新时间技术图片

 

结果的确如此。

 本文源码:https://gitee.com/Hiro-D/Java/tree/master/guava-cache

guava虽然可以设置cache的有效时间,但是是默认的有效时间,如果想要不同的cache有不同的时间guava就不太方便了(本人没找到方法),而且这样cache是本地缓存,想了一下,还是springcahce集合redis,这样就可以设置多个cache多个有效时间了,下一篇就会讲到springcahce+redis配置不同的有效时间。

springcache集成Guava 设置缓存时间

标签:pre   而且   set   设定   tca   red   tree   tps   使用   

原文地址:https://www.cnblogs.com/a565810497/p/10932149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!