ExpiringMap的使用

原文链接:ExpiringMap的使用 – 编程屋

1 使用场景 

        今天在公司与第三方进行接口对接时,需要从对方获取token。但对方技术人员说不要每次调用接口都从那边重新获取,那样对方存储的太多了。返回一个token和过期时间。将token存储起来,在过期时间内直接从本地去拿,token过期了再次重新获取。

        本来想着用Redis,但再一想没有这个必要再次引入一个中间件,使得系统结构复杂,就直接用了ExpiringMap来进行存储。

2 使用方法介绍

ExpiringMap<String, String> map = ExpiringMap.builder()
        .maxSize(2)
        .expiration(10, TimeUnit.SECONDS)
        .variableExpiration()
        .expirationListener((key,value)->{
            log.info("上次token已过期,过期token为:{}",value);
        })
        .expirationPolicy(ExpirationPolicy.CREATED).build();

.maxSize() 能够定义map存储的大小

.expiration() 能够定义map的过期时间

.expirationListener() 过期监听时间 当map过期时会被自动监听到

expirationPolicy 过期协议

        ExpirationPolicy.CREATED 每次更新元素时,过期时间全部清零

        ExpirationPolicy.ACCESSED 每次访问元素时,过期时间全部清零

3 使用

当过期时间到了 map中的值会被清空并且被监听出来

当过期协议为ExpirationPolicy.CREATED 并且在过期时间内再次put元素

        看结果可知 当在过期时间内重新put值的话,过期时间会清理重新计算

  当过期协议为ExpirationPolicy.ACCESSED时 每进行一次访问,过期时间就会自动清零

以上只是部分内容,为了维护方便,本文已迁移到新地址:ExpiringMap的使用 – 编程屋

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值