首页 > 其他分享 >GlobalCache 工具类

GlobalCache 工具类

时间:2023-07-24 18:55:48浏览次数:395  
标签:GlobalCache cacheMap cache key import 工具 public

package com.neo.config;

import org.springframework.stereotype.Component;

import java.util.Map;

import java.util.concurrent.ConcurrentHashMap;

import java.util.concurrent.Executors;

import java.util.concurrent.ScheduledExecutorService;

import java.util.concurrent.TimeUnit;
@Component
public class GlobalCache {

private Map<String, Object> cacheMap;

private ScheduledExecutorService executorService;

public GlobalCache() {

this.cacheMap = new ConcurrentHashMap<>();

this.executorService = Executors.newSingleThreadScheduledExecutor();

}

public void put(String key, Object value, long expiringTime, TimeUnit timeUnit) {

this.cacheMap.put(key, value);

this.executorService.schedule(() -> this.cacheMap.remove(key), expiringTime, timeUnit);

}

public Object get(String key) {

return this.cacheMap.get(key);

}

public void remove(String key) {

this.cacheMap.remove(key);

}

public void clear() {

this.cacheMap.clear();

}

public void stop() {

this.executorService.shutdown();

}

public static void main(String[] args) throws InterruptedException {

GlobalCache cache = new GlobalCache();

cache.put("key1", "value1", 2, TimeUnit.SECONDS);

System.out.println(cache.get("key1")); // value1

Thread.sleep(3000);

System.out.println(cache.get("key1")); // null

cache.stop();

}
}


标签:GlobalCache,cacheMap,cache,key,import,工具,public
From: https://www.cnblogs.com/mssrecord/p/17578058.html

相关文章

  • 移动端跨平台动效工具Lottie, PAG的使用
    动效工具Lottie Lottie是Airbnb开源的一套跨平台的完整的动画效果解决方案,设计师可以使用AdobeAfterEffects设计出漂亮的动画之后,使用Lottic提供的Bodymovin插件将设计好的动画导出成JSON格式,就可以直接运用在iOS、Android、Web和ReactNative之上,无需其他额......
  • 【红队攻防】个人总结、工具、大量干货
    【红队攻防】个人总结、工具、大量干货本公众号技术文章仅供参考!文章仅用于学习交流,请勿利用文章中的技术对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。又很久没更新了,不过正所谓没有好的知识沉淀,哪能写出来好文章,此......
  • STM32F103C8在Keil5中烧录后串口工具无法接收到数据(已解决)
    烧录后串口无法接收到数据(默认硬件连线是正确的,只考虑软件配置问题)在通过Keil5烧录程序并成功后,发现串口没有接收到数据烧录成功未报错串口工具无法接收到数据点击魔法棒,进入Debug-Settings,查看Pack-DebugDescription中的Enable是否勾上,发现√上后拔掉下载器并重新插......
  • 封装RedisTemplate工具类
    packagecom.juxi.common.redis.service;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.data.redis.core.*;importorg.springframework.stereotype.Component;importjava.time.Duration;importjava.util.*;importja......
  • 仪酷LabVIEW AI视觉工具包及开放神经网络交互工具包常见问题解答
    前言哈喽,各位朋友,好久不见~之前给大家分享了基于LabVIEW开发的AI视觉工具包及开放神经网络交互工具包,不少朋友私信说在安装和使用过程中会遇到一些问题,今天我们就集中回复一下大家问到最多的问题。如果大家在使用过程中还有其他问题,可以补充到评论区,我们这篇博文会持续补充更新......
  • java8 时间相关工具介绍
    System.currentTimeMillis()(java.util包下)Date表示当前日期和时间的日期对象Calendar日历TimeZone该类表示时区偏移量SimpleDateFormat格式化Date,建议使用jdk8后的DateTimeFormatter(java.time包下)TemporalUnit时间单位这个概念,这个是个接口,唯一的实现是枚举类ChronoUnitTemp......
  • 工作流学习,工作流定义工具部分(未整理)
    工作流定义工具需求分析工作流分类:管理型、设定型、协作型、生产型。以通讯为中心、以文档为中心、以过程为中心、基于文件、基于消息、基于web。工作流模型包括了描述一个能够由工作流执行服务软件系统执行的过程所需的所有信息。这些信息包括:过程的开始、完成条件,构成过程的......
  • 比AD更好用的“PCB设计文件转生产文件”工具
    问:为何要将PCB文件转换为GERBER文件和钻孔数据?答:因为GERBER文件是一种国际标准的光绘格式文件,它包含RS-274-D和RS-274-X两种格式,其中RS-274-D称为基本GERBER格式,并要同时附带D码文件才能完整描述一张图形;RS-274-X称为扩展GERBER格式,它本身包含有D码信息,常用的EDA软件都能生成此二......
  • 敏捷工具Leangoo领歌支持SAFe大规模敏捷框架,史上最全
    ​Leangoo领歌覆盖了敏捷项目研发全流程,包括小型团队敏捷开发,ScrumofScrums大规模敏捷。随着SAFe的越来越普及,Leangoo本次上线提供了完整的SAFe框架功能,包括:ProgramBacklog,PI规划,迭代规划,迭代执行,迭代统计等。什么是SAFe?SAFe(ScaledAgileFramework)是全球运用最广泛的大规......
  • 不止工具:音视频开发「利器」的新机遇
    Boxing的制胜关键是快、准、稳,与“音视频开发”有异曲同工之妙。数字化浪潮席卷、视频化形态加速、终端性能挑战加剧、端侧算力遭遇瓶颈......是否存在一种可能性,让所有企业从复杂的音视频开发工程中抽身,重新回归业务本身?一站式音视频服务如何获取?冗长繁琐的SDK接入流程怎样简......