您的位置 首页 java

Java中超好用的本地缓存工具:ExpiringMap

ExpiringMap介绍

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

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

根据ExpiringMap的这些功能,也可以看出它能够合理的使用 Java 内存。

接下来通过代码案例来进一步揭开该 API 的神秘面纱。

代码案例

  • 首先引入 maven 依赖:
 <dependency>
  	<groupId>net.jodah</groupId>
  	<artifactId>expiringmap</artifactId>
  	<version>0.5.8</version>
</dependency>  
  • 然后实现缓存功能的代码如下:
 private static final ExpiringMap<String, json Object> cacheMap = ExpiringMap.builder()
		//设置最大的数据元素存储量
		.maxSize(1000)
		//设置存储元素的过期时间,比如120秒
		.expiration(120, TimeUnit.SECONDS)
		//设置过期协议
		.expirationPolicy(ExpirationPolicy.CREATED)
		.variableExpiration()
		. build ();  
 //本地缓存存在要查询的数据,就立刻返回
if(cacheMap.containsKey(id)) {
    return cacheMap.get(id);
}
//本地缓存不存在,再查询数据库,然后加入本地缓存
JSONObject json = wapOpenAppDao.queryWapOpenAppConfig(id);
cacheMap.put(id, json);  

你学习到了吗?去在你所负责的项目中应用吧。


作者 :杨工,北京互联网公司在职Java开发,专注分享写作干货。关注我,留下你的点赞与评论。

文章来源:智云一二三科技

文章标题:Java中超好用的本地缓存工具:ExpiringMap

文章地址:https://www.zhihuclub.com/200242.shtml

关于作者: 智云科技

热门文章

网站地图