我的Java Web应用程序(tomcat)从SQL数据库获取其所有数据。但是,该数据库的大部分仅通过批处理每天更新一次。由于对这些表的查询的确速度很慢,因此我想缓存结果。
在推出自己的解决方案之前,我想检查一下现有的Java缓存解决方案。显然,我搜索了stackoverflow并找到了ehcache的引用和建议。
但是查看文档似乎似乎只允许将缓存对象的生存期设置为持续时间(例如,添加后1小时过期),而我希望基于固定时间的过期(例如,在0h30 am过期)。
有谁知道允许这种到期行为的缓存库?或者,如果可能的话,如何使用ehcache做到这一点?
最佳答案
EhCache允许您在创建单个缓存元素时以编程方式设置其有效期限。 ehcache.xml
中配置的值仅是默认值。
如果您知道该元素应过期的特定绝对时间,则可以计算从那时到“现在”之间的差值(以秒为单位)(即您添加到缓存中的时间),并将其设置为生存时间,使用 Element.setTimeToLive()