redis雪崩、穿透、击穿、热点分别代表什么意思?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了redis雪崩、穿透、击穿、热点分别代表什么意思?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1451字,纯文字阅读大概需要3分钟。
内容图文
redis雪崩:
redis中的key设置里相同的过期时间,导致多个key数据同时过期,客户端读请求,在redis缓存中找不到数据,就会访问数据库,在数据库中找,造成数据库访问压力过大。举个栗子:某佳琪推荐的口红在某日夜里12点到1点促销,大家在这个时间段就会去抢购这个口红,但是有很多人忘记时间了,在1点过后依然去抢购,但这时redis缓存已过期,就会去数据库中找,由于访问量过大,造成数据库压力过大,就是redis缓存雪崩。
【解决方案】
将系统中key的缓存失效时间均匀的错开,可以设置随机值。如:1~5分钟。
redis穿透:
客户端访问redis缓存中不存在的数据,就会导致请求进入数据库,造成数据库压力,这就是redis缓存穿透。
【解决方案】:
1.对查询结果为空的情况也进行缓存
2.对不存在的key进行过滤
3.增加进程级缓存(memcached),在新数据写入的时候,按照顺序依次写入 - 数据库、进程级缓存|搜索服务器、redis缓存。读操作访问顺序是 - redis缓存、进程级缓存、数据库。
redis击穿(热点)
单一key的雪崩。当某缓存数据,访问频率较高(比如某一条八卦新闻),且数据到期后,仍旧有较高的访问频率,这个时候,读请求进入数据库,造成数据库压力提高
【解决方案】
1.周期性扫描:如 - 缓存有效期是24小时,设置周期阀值为1小时,设置热点阀值为300访问频率,每小时运行一个任务,访问redis日志,统计数据的访问频率,达到阀值的数据,延长有效期。
2.互斥锁:因为缓存的构建需要一定的时间,所以在缓存失效的时候有大量的线程来构造缓存,造成后端负载加大,甚至可能让系统奔溃。所以只让一个线程来构建缓存,其他线程等这个线程执行完,重新从缓存获取数据就可以了。
内容总结
以上是互联网集市为您收集整理的redis雪崩、穿透、击穿、热点分别代表什么意思?全部内容,希望文章能够帮你解决redis雪崩、穿透、击穿、热点分别代表什么意思?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。