基于ConcurrentHashMap 最简单无超时时间的本地缓存类

Posted ISaiSai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于ConcurrentHashMap 最简单无超时时间的本地缓存类相关的知识,希望对你有一定的参考价值。

基于:ConcurrentHashMap
无缓存过期时间
仅仅有缓存最大大小

package com.example.demo.SimpleCache;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class SimpleSimpleCacheUtils 
    private static final Integer CACHE_MAX_NUMBER = 100;
    private static final Map<String, Object> CACHE_OBJECT_MAP = new ConcurrentHashMap<>();
    private static Integer CURRENT_SIZE = 0;

    public static void setCache(String cacheKey, Object cacheValue) 
        checkSize();
        CURRENT_SIZE = CURRENT_SIZE + 1;
        CACHE_OBJECT_MAP.put(cacheKey, cacheValue);
    
    public static Object getCache(String cacheKey) 
        if (CACHE_OBJECT_MAP.get(cacheKey) != null) 
            return CACHE_OBJECT_MAP.get(cacheKey);
        
        return null;
    
    public static void clear() 
        CACHE_OBJECT_MAP.clear();
        CURRENT_SIZE = 0;
    

    private static void checkSize() 
        if (CURRENT_SIZE >= CACHE_MAX_NUMBER) 
            clear();
        

    

以上是关于基于ConcurrentHashMap 最简单无超时时间的本地缓存类的主要内容,如果未能解决你的问题,请参考以下文章

1.7&1.8-ConcurrentHashMap对比

如何下载整个网站的图片(只能通过网址访问,无超链接)

ConcurrentHashMap核心源码浅析

Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 (转)

为并发而生的 ConcurrentHashMap(Java 8)