首页 > 系统相关 >用java做一个内存缓存

用java做一个内存缓存

时间:2022-11-10 14:35:37浏览次数:42  
标签:缓存 java 过期 over 内存 key

项目中对接第三方系统需要先获取认证token后,才能调用其他接口,token的有效期(固定为1小时),如果使用redis来做,十分简单,设置redis缓存加上1个小时有效期就可以解决。

现在需要自己用java一个内存缓存,采用map数据结构实现。

一、定义一个Map工具类,提供set、get、over方法

二、set方法:主要存3个属性,1是key值 2是过期时间(时间戳)3是Value值

三、get方法:通过key获取value值,调用over方法,验证key是否过期

四、over方法:用来比较key是否过期,用过期时间和当前时间比较,如果过期则从map中移除该key值。

存在问题:

一、用java内存做缓存,项目重启时,缓存数据丢失。

二、如果key值不同,并且一直未get时,缓存中key越存越多

三、仅限在key值固定情况下使用,防止内存撑爆

四、如果完善一下功能,增加定时任务(cron),定时扫过期时间key再删除

标签:缓存,java,过期,over,内存,key
From: https://www.cnblogs.com/petrel-sun/p/16876883.html

相关文章

  • 【JAVA基础】常量变量维护
    常量维护//参与签名的系统Header前缀,只有指定前缀的Header才会参与到签名中//换行符privatestaticfinalcharLF='\n';publicstaticfinalLong......
  • javaScript中的数组
    javaScript中的数组之前我们已经简单了解过数组了,现在我们开始详细的学习数组,数组就是存放一组数据的优雅变量创建数组的两种方法:let数组名=newArray()letarr=newA......
  • CDH集群内存不够?先别急着加机器
    我们在使用CDH集群的时候,经常会跑一些spark、flink等任务,通常会占用集群较高的内存;随着业务进展,数据量增加,可能会并行跑一些任务,或者是给历史任务分配的内存不足以运行现......
  • @excel 注解_Java读写Excel原来这么简单
    前言相信现在很多搞后端的同学大部分做的都是后台管理系统,那么管理系统就肯定免不了Excel的导出导入功能,今天我们就来介绍一下Java如何实现Excel的导入导出功能。Jav......
  • Java中的对象使用、局部变量与成员变量的区别
    对象的使用对象的使用格式创建对象:类名对象名=new类名();使用对象访问类中的成员:对象名.成员变量;对象名.成员方法();对象的使用格式举例:publicstatic......
  • 一文带你入门 Java 函数式编程
    Java在最开始是不支持函数式编程的,想来也好理解,因为在Java中类Class才是第一等公民,这就导致在Java中实现编程不是件那么容易的事儿,不过虽然难,但是结果我们也已经知道......
  • Java使用lamda表达式简化代码
    代码,自然写的越简洁越好啦,写的人舒服,看的人也舒服,一切为了高效。要把有限的时间花到其它有意思的事情上去。目的学习简化代码的思路,使用jdk8新特性lamada表达式。推理......
  • java 单例设计模式 懒汉式
    packagecom.tedu.test;/***单例设计模式懒汉式设计*优点:不会造成资源的浪费*缺点:会造成线程安全问题*/publicclasssingleonDemo{publicstatic......
  • JAVA第一天学习
    MARKDOWN学习   标题:#加空格为一级标题。双##加空格为二级标题,以此类推,最多为六级标题   字体:字体两边加双**为加粗字体,加单*为斜体,加三***为字体加粗斜体,......
  • 【java技术总结】java-8新特性:日期时间 API
    Java8通过发布新的Date-TimeAPI(JSR310)来进一步加强对日期与时间的处理。在旧版的Java中,日期时间API存在诸多问题,其中有:非线程安全−java.util.Date是非线......