SpringBoot入门到精通-基于Google Guava Cache Util工具类实现本地缓存设置过期时间
发布日期:2021-05-20 11:49:03 浏览次数:25 分类:精选文章

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

在我们的项目中,我们不引入Redis,因为这会增加部署的复杂性,因此决定使用Guava Cache来实现类似Redis失效时间的功能。

通过研究,发现Guava Cache非常适合完成缓存操作,特别是当项目不依赖Spring Boot时。以下是我们优化后的实现方案。

Guava Cache Util类代码

import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import com.google.common.cache.LoadingCache;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;/** * 内存缓存工具类 * @author liuxi * @info 2019-10-17 14:38 liuxi * 使用了LRU算法 */public class GuavaCacheUtils {    public static final String TOKEN_PREFIX = "token_";        /** 过期时间:12小时 */    private static LoadingCache localcache = CacheBuilder.newBuilder()        .initialCapacity(1000)        .maximumSize(10000)        .expireAfterAccess(2, TimeUnit.HOURS)        .build(new CacheLoader
() { @Override public Object load(Object o) throws Exception { return "null"; } }); public static void setKey(String key, String value) { localcache.put(key, value); } public static String getKey(String key) { String value = null; try { value = (String) localcache.get(key); if ("null".equals(value)) { value = null; } } catch (ExecutionException e) { e.printStackTrace(); } return value; }}

Maven依赖配置

确保项目中引入正确版本的Guava依赖,以避免版本冲突:

com.google.guava
guava
26.0-jre

Official Documentation链接

Guava Cache的官方文档提供了详细的API文档和使用指南:

Guava Cache文档

通过以上配置,我们可以成功实现类似Redis失效时间的功能,同时避免了引入额外依赖和复杂的部署过程。

上一篇:Rancgher入门到精通- kubernetes获取 当前 Pod ip 添加到环境变量
下一篇:SpringBoot入门到精通-springboot 富文本字段返回结果 respone html标签丢失了

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年05月06日 05时10分55秒