当前位置:   article > 正文

redis缓存失效形式设计思路_redistemplate 缓存1小时

redistemplate 缓存1小时

      用户那边提出了一个关于缓存失效设置的一个需求,要求可以设置整点失效,比如,在每天00:00:00的时候,缓存失效,场景是有些数据是t+1的。

      历史系统本来也支持缓存,但是缓存用的是相对时间:当用户获取的时候,先从缓存中取,如果取不到就从数据库取,再放进内存,使用的如下:

  1. //只缓存一小时,一小时后redis会自动把该key删除,
  2. redisTemplate.opsForValue().set(key, value,1, TimeUnit.HOURS);
 

     这种设计,针对t+1的数据缓存,无法达到想要效果。

     因为redis未提供设置具体时间失效的方法,一开始设计的时候考虑,把值设置进去,不设置失效时间,记录下key和需要失效的时间点,搞个定时任务,定时去扫,到了失效时间就从redis里删除。但后面发现这样太麻烦了,最后想到的方案是:在set的时候,就算出用户设置的时间和当前时间差,把失效时间设置进入就好了。比如,用户设置了天类型缓存,要求每天00:00:00缓存失效,当前时间是23:00:00,两个时间差一小时,那我设置一小时失效时间就好了。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/353143
推荐阅读
相关标签
  

闽ICP备14008679号