zoukankan      html  css  js  c++  java
  • redis缓存击穿和缓存雪崩

    工作中经常会用到redis来做缓存,以防止后台db挂掉。但是db数据一般都在10T以上,不可能把mysql中的数据全部放入redis中,所以一般是将一些热key放入redis中。

    缓存击穿

    一个请求先去redis中查询数据,如果存在则返回,不存在则去mysql中读取,然后回写到redis中,然后配上过期时间。这大概是redis最典型的用法了。但是如果某个时刻大量key的请求都没有命中缓存,那么这些大量请求就会全部落到mysql中,导致mysql压力过大。这个场景就是典型的缓存击穿。缓存击穿只需要把mysql数据会写到redis中就能得到解决。还有就是在配置过期时间的时候最好使用随机时间,否则大量的热key在同一时间过期,还是会周期性的造成缓存击穿。

    但是还有一种场景是如果大量请求去请求同一个redis和mysql中都不存在的key,那么就会造成缓存雪崩。由此可以看出,缓存击穿和缓存雪崩现象是一样的,都是对mysql造成大量的请求和压力。但是解决办法不一样。面对缓存雪崩,常见的做法是把不存在的key会写到redis中,对应的value为空。否则请求还是会无止境的请求mysql的。

  • 相关阅读:
    一些暂时被我鸽掉的题目
    概率期望生成函数 学习笔记?
    「SDOI2017」树点涂色 解题报告
    「十二省联考 2019」字符串问题 解题报告
    2019好多省联考 游记
    懒癌 解题报告
    MySQL 性能优化
    数据库优化
    平台团购活动商品同步功能
    ECSSHOP表结构
  • 原文地址:https://www.cnblogs.com/howo/p/11363268.html
Copyright © 2011-2022 走看看