一个轻量的java缓存方式ExpiringMap,可以设置map过期时间

一、简单介绍
应用程序中引入缓存能够降低数据库方面的压力,比如常用的Redis缓存中间件。但是在有些小场景下,使用Redis不仅增加了系统的复杂性和不确定性,还有点大材小用。而ExpiringMap适合缓存那些被频繁查询以及数据量不是很大的数据信息。它具有如下功能:

可以设置存储元素的过期时间;
可设置最大的数据元素存储量;
设置过期协议,过期协议分有两种:ExpirationPolicy.CREATED和ExpirationPolicy.ACCESSED。它俩之间的区别:前者在每次更新元素时,过期时间同时清零;后者是在每次访问元素时,过期时间同时清零。

二、使用:
2.1、加入依赖:

net.jodah expiringmap 0.5.8

2.2、用法:
在这里插入图片描述

ExpiringMap<String, String> map = ExpiringMap.builder()
//设置最大值,添加第11个entry时,会导致第1个立马过期(即使没到过期时间)
.maxSize(10)
//设置元素10秒后过期。参数一:时长 参数二:时间单位 秒、天、月…
.expiration(10, TimeUnit.SECONDS)
/* 过期协议
ExpirationPolicy.CREATED:在每次更新元素时,过期时间同时清零。
ExpirationPolicy.ACCESSED:在每次访问元素时,过期时间同时清零。
*/
.variableExpiration().expirationPolicy(ExpirationPolicy.CREATED).build();

map.put(“token”, “lkj2412lj1412412nmlkjl2n34l23n4”);
//给元素单独设置有效期
//参数一:key 参数二:value 参数三:过期时长 参数四:过期时间单位
map.put(“name”, “管理员”, 15, TimeUnit.SECONDS);

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐