redis可以自动刷新缓存吗

liuhc10 2017-08-31 09:04:59
访问只读库做接口开发。
用redis做缓存,用户访问自动缓存数据。
但是这样子有不少缺点,1,没缓存用户访问接口的时候比较慢。2,缓存失效后同时请求数据库压力过大。
redis有这种功能:当缓存过期或没缓存的时候自动执行,将数据缓存好,而不是靠用户来触发。
quratz定时任务这种实现模式的话我觉得还是不太好,请问各位大神有其它的方法吗
...全文
13148 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgycsmb 2019-06-26
  • 打赏
  • 举报
回复
可以在配制文件中设置缓存时间的。
技术煜 2018-08-30
  • 打赏
  • 举报
回复 1
可以用Timer来做,设置更新频率 public static void timer() { Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void run() { System.out.println("-------设置redis缓存数据,失效时间为60秒--------"); } },0, 50*1000); // 延迟0毫秒开始执行,每50秒执行一次更新Redis。 }
田小瘦 2018-08-23
  • 打赏
  • 举报
回复
好想法啊,可以给redis打个电话发个短信什么的? 不行的话,也不想手动触发的,就用个定时器吧.建议还是手动触发, 只是在手动的时候做一个优化处理,
济南大飞哥 2018-08-06
  • 打赏
  • 举报
回复
我记得一篇文章说过,可以让redis永不过期,然后定时刷新,前提是在业务能接受的范围。
hahaliu005 2018-08-06
  • 打赏
  • 举报
回复
1. 缓存数据在过期时间,不过过期时间是随机的一个时间段内的,这样所有缓存就不会在同一时间失效造成压力
2. 永久缓存数据至redis,所有逻辑均从redis中读取,使用定时任务或一些数据库的更新事件回调对数据进行更新,
新技术追求者 2018-07-01
  • 打赏
  • 举报
回复
最好的办法是专门有一个定时的管理任务,那你需要定时更新的数据都放在定时的任务里,这里不管你有没有缓冲,他都会去定时的往你的redis中取更新任务,redis只是一个存储数据的地方,其实也是个DB,redis服务端是自带自动更新的功能,你可以取了解下!
幽饮烛 2018-06-21
  • 打赏
  • 举报
回复
本来想回复一下,发现是17年的贴。
comeoncomputer 2018-06-04
  • 打赏
  • 举报
回复
为什么要自动刷新缓存呢 如果缓存数据为空设置缓存不就好了 比如你的key:test 缓存数据为7天,到期之后你的test为空了,如果有访问为空设置缓存不就有缓存了
weixin_41670939 2018-05-28
  • 打赏
  • 举报
回复
建议手动更新来及时刷新
我惠依旧 2018-05-23
  • 打赏
  • 举报
回复
热点数据缓存时间放长点,每次访问都重新刷新缓存时间;非热点数据时间就慢点,访问时也刷新个缓存时间;缓存失效也只是访问一次数据库(理想状态,非理想状态也不会太多次),再次访问就已经是缓存里的数据了。
a_king 2018-05-13
  • 打赏
  • 举报
回复
应该是通过程序来刷新REDIS里面的数据
yanbingwei86 2018-02-25
  • 打赏
  • 举报
回复
楼主想多了 redis只是个内存db,想存什么数据肯定是你程序写进去的。不管是被动还是主动,建议被动方式。这种ms级别的操作还会有什么性能问题,你应该是rt估计的有问题吧。拍脑袋的问题吧
哈希塞特 2018-02-24
  • 打赏
  • 举报
回复
那你还有设置过期时间的必要吗? 如果数据库改变再更新缓存,根本不要过期时间啊
raymond_geng 2017-11-13
  • 打赏
  • 举报
回复
楼主这个需求不太合理,缓存不只是没有了和要过期了才需要刷新,里面数据变了就要刷新的。先放任不管任由缓存自行管理,没有这种机制的。 ”同时请求数据库压力过大“,如果出现这种情况,那是设计时候就没设计好,要不然不会出现这个情况的 北京JAVAQQ群 103503138,里面有猎头、人资、技术大牛,欢迎加群交流
NewshiJ 2017-11-13
  • 打赏
  • 举报
回复
redis里面不是可以设置key的时间嘛,这个具体怎么样有没有大神来介绍一下
General-M 2017-11-12
  • 打赏
  • 举报
回复
可以看下redis的keyspace
Kerwin Ma 2017-11-07
  • 打赏
  • 举报
回复
redis可以设置缓存时间,过期或者更新后需要重新去缓存,#7说的做定时器 不知道好不好使,可以试一下。
  • 打赏
  • 举报
回复
底层源码改造一哈
吉吉g王 2017-11-06
  • 打赏
  • 举报
回复
还不如 先查redis 如果redis没有 去查库 如果库里存在 那么再存redis 不存在的话 就返回不存在
Seven丨 2017-11-01
  • 打赏
  • 举报
回复
做个定时器,去触发执行redis的方法
加载更多回复(6)

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧