用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再删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY