用java做一个内存缓存

项目中对接第三方系统需要先获取认证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再删除

posted @   光芒依旧  阅读(1096)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示