简单的Map缓存机制实现

来源:互联网 发布:怎么和淘宝客服联系 编辑:程序博客网 时间:2024/05/16 12:32
简单的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();    }    }

 

0 0
原创粉丝点击