大致思路是用一个单例的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. DotNetCore学习-2.程序启动

    新创建的ASP.NET Core程序中包含两个文件,分别是Program.Startup.其中,Program中Main方法是整个应用程序的入口,该方法如下: var host = WebHost.C ...

  2. Linux免密码登录设置

    Linux免密码登录设置 假设要登录的机器为192.168.1.100,当前登录的机器为192.168.1.101. 首先在101的机器上生成密钥(如果已经生成可以跳过): $ ssh-keygen ...

  3. 漫画|你还记得原生的JDBC怎么连接数据库吗?

    数据表的设计范式 在实际开发中最为常见的设计范式有三个: 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式: 第二范式需要确保数据库表中的每一列都 ...

  4. css 实用代码汇总

    1.table 排版(防止td文字过多导致table变形) table { /*为表格设置合并边框模型*/ border-collapse: collapse; border-spacing: 0; ...

  5. CSS&JS两种方式实现手风琴式折叠菜单

    <div class="accordion"> <div id="one" class="section"> < ...

  6. 搜狐eHR团队-曾经一起奋斗过的~

    昨天所有搜狐eHR团队同事再相聚(在职+离职),大家聊的都很开心,共同回顾了eHR项目从无到有的过程. 非常感谢在搜狐的工作经历,自己成长很多,目前大家分布在各个公司为eHR做着贡献,大家都注意身体~ ...

  7. Openlayer3之空间参考扩展

    Openlayers默认了两种空间参考,一个是EPSG4326,一个是EPSG3857,其它的空间参考需要进行扩展才能使用.所以我们初始化时进行了如下操作: 1.将配置数据库中所有的空间参考读取出来, ...

  8. Android studio 在一个项目上添加另一个项目,引用其内部参数

    Setting.gradle 里面 添加 include ':app',‘imagePicker’ 其中 imagePicker 为要引入的项目名 build.gradle(Module: app)  ...

  9. 阿里SopHix热修复框架

    2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案.阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner ...

  10. (网页)HTML小技巧的一些小技巧

    转自CSDN: 1.怎样定义网页语言(字符集)?            在制作网页过程中,你首先要定义网页语言,以便访问者浏览器自动设置语言,而我们用所见即所得的HTML工具时,都没有注意到这个问题, ...