ConcurrentHashMap进行缓存

Posted 爸爸去哪了2之熊猫三胞胎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConcurrentHashMap进行缓存相关的知识,希望对你有一定的参考价值。

import java.util.concurrent.ConcurrentHashMap;


public class ConcurrentHashMapTest 


    private static ConcurrentHashMap<String, String> cacheMap = new ConcurrentHashMap<>();


    /**
    * 获取缓存的对象
    * @param account
    * @return String
    */
    public static String getCache(String key,String value) 


        key = getCacheKey(key);
        // 如果缓冲中有该账号,则返回value
        if (cacheMap.containsKey(key)) 
        return cacheMap.get(key);
        
        // 如果缓存中没有该账号,把该帐号对象缓存到concurrentHashMap中
        initCache(key,value);
        return cacheMap.get(key);
    


    /**
    * 初始化缓存
    * @param key
    */
    private static void initCache(String key,String value) 
        // 一般是进行数据库查询,将查询的结果进行缓存
        cacheMap.put(key, value);
    


    /**
    * 拼接一个缓存key
    * @param key
    */
    private static String getCacheKey(String key) 
        return Thread.currentThread().getId() + "-" + key;
    


    /**
    * 移除缓存信息
    * @param key
    */
    public static void removeCache(String key) 
        cacheMap.remove(getCacheKey(key));
    

以上是关于ConcurrentHashMap进行缓存的主要内容,如果未能解决你的问题,请参考以下文章

并发编程中经常用到的ConcurrentHashMap

工具篇使用concurrentHashMap实现缓存工具类

工具篇使用concurrentHashMap实现缓存工具类

ConcurrentHashMap 实现缓存类

线程结果缓存实现(future与concurrenthashmap)

ConcurrentHashMap 产生NullPointerException