zoukankan      html  css  js  c++  java
  • 简单的Map缓存机制实现

    简单的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();
        }
        
    }
  • 相关阅读:
    所遇bug
    PHP后端读取文件给video标签返回视频地址
    element-ui 上传组件 自定义上传没有进度条解决方法
    PHP递归生成分类树
    Vue.js学习 — 微信公众号菜单编辑器(二)
    Vue.js学习 — 微信公众号菜单编辑器(一)
    swiper3插件无缝滚动配置
    PHP获取一周的日期
    bootstrap-select多选下拉列表插件使用小记
    html5小总结
  • 原文地址:https://www.cnblogs.com/zhaoww/p/5122969.html
Copyright © 2011-2022 走看看