java map缓存
/** * 缓存池 * @author xiaoquan * @create 2015年3月13日 上午10:32:13 * @see */public class CachePool { private static CachePool instance;//缓存池唯一实例 private static Map<String,Object> cacheItems;//缓存Map private CachePool(){ cacheItems = new HashMap<String,Object>(); } /** * 得到唯一实例 * @return */ public synchronized static CachePool getInstance(){ if(instance == null){ instance = new CachePool(); } return instance; } /** * 清除所有Item缓存 */ public synchronized void clearAllItems(){ cacheItems.clear(); } /** * 获取缓存实体 * @param name * @return */ public synchronized Object getCacheItem(String name){ if(!cacheItems.containsKey(name)){ return null; } CacheItem cacheItem = (CacheItem) cacheItems.get(name); if(cacheItem.isExpired()){ return null; } return cacheItem.getEntity(); } /** * 存放缓存信息 * @param name * @param obj * @param expires */ public synchronized void putCacheItem(String name,Object obj,long expires){ if(!cacheItems.containsKey(name)){ cacheItems.put(name, new CacheItem(obj, expires)); } CacheItem cacheItem = (CacheItem) cacheItems.get(name); cacheItem.setCreateTime(new Date()); cacheItem.setEntity(obj); cacheItem.setExpireTime(expires); } public synchronized void putCacheItem(String name,Object obj){ putCacheItem(name,obj,-1); } /** * 移除缓存数据 * @param name */ public synchronized void removeCacheItem(String name){ if(!cacheItems.containsKey(name)){ return; } cacheItems.remove(name); } /** * 获取缓存数据的数量 * @return */ public int getSize(){ return cacheItems.size(); }}public class CacheItem {
private Date createTime = new Date();//创建缓存的时间 private long expireTime = 1;//缓存期满的时间 private Object entity;//缓存的实体 public CacheItem(Object obj,long expires){ this.entity = obj; this.expireTime = expires; } public boolean isExpired(){ return (expireTime != -1 && new Date().getTime()-createTime.getTime() > expireTime); } /** * 省略getter、setter方法 */} |
原文: http://www.cnblogs.com/quanenmin/p/4335278.html
java map缓存的更多相关文章
- 5个强大的Java分布式缓存框架推荐
在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的 缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了 ...
- java hashMap缓存简单实现
直接上代码,干货: import java.util.HashMap; import java.util.Map; /** * map缓存 * @author ming * * @param < ...
- java 开源缓存框架--转载
原文地址:http://www.open-open.com/13.htm JBossCache/TreeCache JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的 ...
- java Map实现的cache manager
一个模仿memcached的JAVA虚拟缓存工具,可以缓存java对象 import java.io.ByteArrayInputStream; import java.io.ByteArrayOut ...
- Java实现缓存(类似于Redis)
Java实现缓存,类似于Redis的实现,可以缓存对象到内存中,提高访问效率.代码如下: import java.util.ArrayList; import java.util.HashMap; i ...
- Java实现缓存(LRU,FIFO)
现在软件或者网页的并发量越来越大了,大量请求直接操作数据库会对数据库造成很大的压力,处理大量连接和请求就会需要很长时间,但是实际中百分之80的数据是很少更改的,这样就可以引入缓存来进行读取,减少数据库 ...
- 5个强大的Java分布式缓存框架
在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了5 ...
- Redis中的Java分布式缓存
为什么在分布式Java应用程序中使用缓存?今天学习了两节优锐课讲解分布式缓存的内容,收获颇多,分享给大家. 在提高应用程序的速度和性能时,每毫秒都是至关重要的.例如,根据Google的一项研究,如果网 ...
- 巧用Map缓存提升"翻译"速度
在业务编码中,很多情况都需要用到code2Name或者id2Name之间的"翻译",在我的过往经历中发现不少开发人员都是直接双重循环实现这种"翻译".如果一次& ...
随机推荐
- 避免HTML5六种错误用法
一.不要使用section作为div的替代品 人们在标签使用中最常见到的错误之一就是随意将HTML5的<section>等价于<div>--具体地说,就是直接用作替代品(用于样 ...
- SDcard进行文件的读取
平时我们需要在手机上面存储想音频,视频等等的大文件,以前学过使用File进行存储(使用File操作进行存储):由于考虑到手机本身的存储空间小,这时候我们需要把文件存储在SDcard中,今天自己也学习了 ...
- svn: E175002: can not read HTTP status line
问题:eclipse连接svn:https://bdsvn-pc/svn/Project,报错svn: E175002: can not read HTTP status line 解决办法:将域名改 ...
- TFS如何设置在客户端独占签出
步骤:1.打开源代码管理资源管理器,点击“工作区”的下拉框,选择,“工作区”2.选择编辑3.选择“高级”4.进入编辑工作区,tfs中“位置”选项中,默认的时本地,如果想独占签出,这里我们就必须设置成“ ...
- Eclipse CDT 代码高亮配置
效果图如下: 配置生效方式: 找到CDT的workspace目录中如下文件 X:\workspace\.metadata\.plugins\org.eclipse.core.runtime\.sett ...
- gRPC 的 RoadMap 20160325 更新
gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发 ...
- PostgreSQL在Ubuntu上安装指南
安装环境: Ubuntu 10.04-desktop-i386 PostgreSQL 8.4 1. 安装PostgreSQL 输入如下命令 sudo apt-get install postgresq ...
- 如何让你的Python代码更加pythonic ?
pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少. 以下为了简略,我们用P表示pythonic的写法,NP表示non-pythonic的写法,当然此P-NP非彼P-N ...
- hadoop配置优化
yarn-site.xml <property> <name>yarn.nodemanager.resource.memory-mb</name> <valu ...
- Spring的java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!异常处理方法
使用Spring提供的模板类HibernateDaoSupport,如果单纯的使用'命名参数'的形式编写HQL语句如: public class UserDaoImpl extends Hiberna ...