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