因为功能比较小,不值当的引入redis,生产的话也会增加部署复杂度,于是想实现类似redis失效时间的功能,
百度之,发现Guava Cache可以实现,但是多数是跟springboot 集成的,找了很久找到一个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
*
*/
public class GuavaCacheUtils {
public static final String TOKEN_PREFIX = "token_";
/**
* 过期时间12小时
* @info 2019-10-17 14:28 liuxi
* 使用了LRU算法
* @param null
*/
private static LoadingCache localcache = CacheBuilder.newBuilder().initialCapacity(1000).maximumSize(10000).expireAfterAccess(2, TimeUnit.HOURS).build(new CacheLoader<Object, Object>() {
// 如果 get取值的时候没有值,默认调用这个方法返回值
@Override
pu