博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springcache集成Guava 设置缓存时间
阅读量:6048 次
发布时间:2019-06-20

本文共 1250 字,大约阅读时间需要 4 分钟。

上一篇讲到了springboot集成springcahce :

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

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

第一步:添加maven依赖:

com.google.guava
guava
25.1-jre

 

第二步,配置cacheManager:

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

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

这里

expireAfterAccess就是设置有效时间了,这里有多个用法,有读写后刷新,有固定刷新,详细的可以参考:

我们看一下测试代码:

@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秒拿一次,这个时候缓存已经到期了拿到的应该不是缓存内的时间,应该是最新时间

 

结果的确如此。

 本文源码:

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

转载于:https://www.cnblogs.com/a565810497/p/10932149.html

你可能感兴趣的文章
Express代理中间件问题与解决方案
查看>>
||和&&返回什么?
查看>>
linux在文件中查找指定字符串,然后根据查找结果来做进一步的处理
查看>>
在Oracle中删除所有强制性外键约束
查看>>
【R】R语言使用命令行参数 - [编程技巧(Program Skill)]
查看>>
经典算法题每日演练——第二题 五家共井
查看>>
存储过程中拼接的变量和点的问题
查看>>
ASP.NET那点不为人知的事(一)
查看>>
3.16
查看>>
表单文件上传与文件下载
查看>>
下午考
查看>>
创建字符设备的三种方法
查看>>
走在网页游戏开发的路上(六)
查看>>
nginx 配置的server_name参数(转)
查看>>
Uva592 Island of Logic
查看>>
C++基础代码--20余种数据结构和算法的实现
查看>>
footer固定在页面底部的实现方法总结
查看>>
nginx上传文件大小
查看>>
HDU 2243 考研路茫茫——单词情结(自动机)
查看>>
Dubbo OPS工具——dubbo-admin & dubbo-monitor
查看>>