google本地缓存LoadingCache

google本地缓存LoadingCache

1.需要引入相关pom依赖(项目源码参考:https://github.com/licunzhi/dream_on_sakura_rain/tree/master/loadingcache_demo)

com.google.guava guava 24.1-jre

2.在项目启动的时候注册组件Bean(使用注解@Configuration和@Bean)

@Configuration
public class MyCacheConfiguration {

    private static final int EXPIRE_SECONDS = 86400;

    /**
     * 定义token缓存, 默认最大数量为3000
     */
    @Bean
    public LoadingCache<String, Object> myCacheStorage() {
    return CacheBuilder.newBuilder().maximumSize(3000).expireAfterWrite(EXPIRE_SECONDS,   		     TimeUnit.SECONDS) .build(new CacheLoader<String, Object>() {
         	 @Override
             public Object load(String name) throws Exception {
        //在这里可以初始化加载数据的缓存信息,读取数据库中信息或者是加载文件中的某些数据信息
             	 return null;
                }
          });
    }
}

3.在这里插入图片描述

CacheBuilder:LoadingCache实现类,存储键值形式(本质Map)
最常用的方法的介绍----------源码中对于各个方法的解释:
① 定义对象个数的限制,如果没有定义过期规则则超出限制的时候,会将最远时间最少使用的自动过期保证总数在设置的范围内

public CacheBuilder<K, V> maximumSize(long size)
②定义过期时间显示(duration:设置持续时间;unit:持续时间单位【备注:右下插图为可用单位】):缓存中数值在指定时间没有值更新会过期

public CacheBuilder<K, V> expireAfterWrite(long duration, TimeUnit unit)
③同样是定义过期时间,但是这个和上面的有点区别,只要缓存中的数据被访问就会重置数据的缓存时间

public CacheBuilder<K, V> expireAfterAccess(long duration, TimeUnit unit)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值