龙空技术网

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

Java讲坛杨工 4035

前言:

现在朋友们对“java 本地缓存工具”大约比较注意,各位老铁们都想要学习一些“java 本地缓存工具”的相关文章。那么小编同时在网上汇集了一些对于“java 本地缓存工具””的相关知识,希望咱们能喜欢,小伙伴们快快来学习一下吧!

ExpiringMap介绍

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

可以设置存储元素的过期时间;可设置最大的数据元素存储量;设置过期协议,过期协议分有两种: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,JSONObject> 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 本地缓存工具