基于caffeine本地缓存的实现

1.本地缓存实现

1.1导入依赖
		<!--     caffeine 缓存   -->
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
        </dependency>
1.2 创建缓存spring的bean容器
package org.jeecg.modules.test;


import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;


/**
 * 本地缓存
 */
//@Component
public class TestLocalCacheManager implements InitializingBean {


    private Cache<String,String> localCache;

    /**
     * 向缓存中保存数据,如果已经存在则不覆盖
     */
    public void putIfNotExist(String key, String value){
        if(localCache.getIfPresent(key)==null){
            localCache.put(key,value);
        }
    }

    /**
     * 根据key获取缓存数据
     *
     */
    public String get(String key){
        return localCache.getIfPresent(key);
    }


    public void del(String key){
        localCache.invalidate(key);
    }


    /**
     * 在bean初始化时,初始化本地缓存
     *
     */
    @Override
    public void afterPropertiesSet() throws Exception {
        localCache = Caffeine.newBuilder()
                .expireAfterWrite(10, TimeUnit.SECONDS)//写入后过期时间
                .expireAfterAccess(10, TimeUnit.SECONDS)//访问过后失效时间
                .maximumSize(1000)//初始缓存大小
                .build();
    }
}
1.3 具体使用

在对应类中注入@Autowired该TestLocalCacheManager类直接和map的使用方法没有什么差异

posted @   牛奶配苦瓜  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示