大致思路是用一个单例的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();
} }

简单的Map缓存机制实现的更多相关文章

  1. client缓存机制

    一.简单介绍 client缓存机制不仅能够减轻server端的压力,同一时候也能让用户在网速较慢的情况下获取良好的用户体验. 所以构建一个优秀的APP,缓存是非常重要的一个环节. 二.处理方案 cli ...

  2. 使用map端连接结合分布式缓存机制实现Join算法

    前面我们介绍了MapReduce中的Join算法,我们提到了可以通过map端连接或reduce端连接实现join算法,在文章中,我们只给出了reduce端连接的例子,下面我们说说使用map端连接结合分 ...

  3. Spring缓存机制的理解

    在spring缓存机制中,包括了两个方面的缓存操作:1.缓存某个方法返回的结果:2.在某个方法执行前或后清空缓存. 下面写两个类来模拟Spring的缓存机制: package com.sin90lzc ...

  4. 理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 缓存机制总结

    本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存 ...

  5. Volley(六 )—— 从源码带看Volley的缓存机制

    磁盘缓存DiskBasedCache 如果你还不知道volley有磁盘缓存的话,请看一下我的另一篇博客请注意,Volley已默认使用磁盘缓存 DiskBasedCache内部结构 它由两部分组成,一部 ...

  6. Java缓存学习之二:浏览器缓存机制

    浏览器端的九种缓存机制介绍 浏览器缓存是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存 ...

  7. Solr4.8.0源码分析(19)之缓存机制(二)

    Solr4.8.0源码分析(19)之缓存机制(二) 前文<Solr4.8.0源码分析(18)之缓存机制(一)>介绍了Solr缓存的生命周期,重点介绍了Solr缓存的warn过程.本节将更深 ...

  8. wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之L ...

  9. 深入浅出mybatis之缓存机制

    目录 前言 准备工作 MyBatis默认缓存设置 缓存实现原理分析 参数localCacheScope控制的缓存策略 参数cacheEnabled控制的缓存策略 总结 前言 提到缓存,我们都会不约而同 ...

随机推荐

  1. PowerDesigner 参照完整性约束(转载)

    PowerDesigner 参照完整性约束: 限制(Restrict):不允许进行修改或删除操作.若修改或删除主表的主键时,如果子表中存在子记录,系统将产生一个错误提示.这是缺省的参照完整性设置. 置 ...

  2. 设计模式之状态模式(State )

    状态模式是根据其状态变化来改变对象的行为,允许对象根据内部状态来实现不同的行为.内容类可以具有大量的内部状态,每当调用实现时,就委托给状态类进行处理. 作用 当一个对象的内在状态改变时允许改变其行为, ...

  3. Vue 系列之 组件

    一个简单的 TodoList <body> <div id="root"> <div> <input type="text&qu ...

  4. blfs(systemv版本)学习笔记-编译安装ligtdm显示管理器

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! ligtdm带有显示管理器和登录器,参照我的笔记安装xorg和i3后安装lightdm,就可以组成一个简易的桌面环境了 下面是l ...

  5. HttpHandler与HttpModule介绍

    前言:作为一个开发人员,我们看过很多的关于开发的书,但是都是教我们"知其然",并没有教我们"知其所以然",我们开发web项目的过程中,当我们输完URL敲下回车就 ...

  6. Sybase SQL anywhere5.5

    https://github.com/mono/old-code https://wiki.scn.sap.com/wiki/display/SQLANY/SQL+Anywhere+and+Micro ...

  7. 【读书笔记】iOS-iPad与iPhone

    在开发通用型应用的时候,你总是需要记住,iPad并不是一个大大的iPod touch,为iPad开发的应用的界面应该更好地利用iPad的大屏幕,而不应该是iPhone应用的复制品. 参考资料:< ...

  8. React 入门学习笔记整理(七)—— 生命周期

    (1)react 生命周期 只有类组件有生命周期,函数组件没有生命周期 1.挂载阶段:这些方法会在组件实例被创建和插入DOM中时被调用: 1)constructor(props) 初始化组件的状态.绑 ...

  9. RNN,LSTM中如何使用TimeDistributed包装层,代码示例

    本文介绍了LSTM网络中的TimeDistributed包装层,代码演示了具有TimeDistributed层的LSTM网络配置方法. 演示了一对一,多对一,多对多,三种不同的预测方法如何配置. 在对 ...

  10. loadrunner 场景设计-集合点设置

    场景设计-集合点设置 by:授客 QQ:1033553122 1  作用 通过让多用户在同一时间点上进行并发操作来测试系统的并发处理的能力 2  实现 通过集合点函数来实现. 注意:集合点经常和事务结 ...