简单的Map缓存机制实现
2016-03-06 16:56
621 查看
简单的Map缓存机制实现
大致思路是用一个单例的Map实现,当然此Map得是线程安全的--ConcurrentHashMap
原本项目需求是缓存十条消息,所以打算用Map实现缓存机制。中途夭折下面具体尚未实现。。。
当然此代码仞为半成品,具体得根据项目需求采用不同的原则清除缓存
大致思路是用一个单例的Map实现,当然此Map得是线程安全的--ConcurrentHashMap
原本项目需求是缓存十条消息,所以打算用Map实现缓存机制。中途夭折下面具体尚未实现。。。
当然此代码仞为半成品,具体得根据项目需求采用不同的原则清除缓存
package per.zww.util; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class CachePool { private static CachePool cachePool; private Map<Object, Object> cacheItems; private CachePool() { cacheItems =new ConcurrentHashMap<Object, Object>(); } /** * 获取唯一实例 * @return instance */ public static CachePool getInstance() { if (cachePool ==null) { synchronized (CachePool.class) { if (cachePool ==null) { cachePool =new CachePool(); } } } return cachePool; } /** * 获取所有cache信息 * @return cacheItems */ public Map<Object, Object> getCacheItems() { return this.cacheItems; } /** * 清空cache */ public void clearAllItems() { cacheItems.clear(); } /** * 获取指定cache信息 * @return cacheItem */ public Object getCacheItem(Object key) { if (cacheItems.containsKey(key)) { return cacheItems.get(key); } return null; } /** * 存放cache信息 */ public void putCacheItem(Object key,Object value) { if (!cacheItems.containsKey(key)) { cacheItems.put(key, value); } } /** * 删除一个cache */ public void removeCacheItem(Object key) { if (cacheItems.containsKey(key)) { cacheItems.remove(key); } } /** * 获取cache长度 * @return size */ public int getSize() { return cacheItems.size(); } }
相关文章推荐
- WebSocket之获取HttpSession
- JSON格式之GSON解析
- Spring框架学习之IOC(二)
- Spring框架学习之IOC(一)
- STL与泛型编程<二>:Vector
- 设计模式之策略模式
- centos下安装redis
- jmeter switch controller
- 线性表(顺序表,链表的表示和实现)
- 二叉树
- 合并两个递增排序的链表
- 自动生成30道四则元算题目
- iOS 后台任务处理(多任务)
- PHP 的ini配置文件的读写操作函数
- 《编写高质量代码:改善C++程序的150个建议》读书笔记6
- uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型c++/c? (在andriod源码中)
- SpringMVC中的controller默认是单例的原因
- 第二周:一个简单的时间片轮转多道程序内核代码及分析
- PHP 通过fsockopen函数获取远程网页源码
- JUnit三分钟教程