redis 高并发课题 :击穿、穿透、雪崩、分布式锁

前提条件:高并发

一、缓存穿透:

  • 概念理解:
  • 解决思路:


    • 布隆过滤器:性能不错和存储量可控(不大),使用bitmap位图实现,一个字节8个二进制位;不能删除。只能保证一定不存在,不能保证是否真实存在
    • 布谷鸟过滤器:指纹+布谷鸟特性-把蛋下到别人的窝里=》本质:争抢位置 

二、缓存击穿

  • 概念理解:
  • 解决思路:

    • 分布式锁+多线程维护锁的过期时间(避免死锁&锁过期但还未执行完成) 

    • 如果数据的一致性要求不是非常高,建议用触发式任务队列去同步数据。其实原理也就是读写分离,也就说,并发请求所在的线程仅仅是触发更新缓存,但不处理缓存的更新。

三、缓存雪崩

  • 概念理解:可以理解为n个缓存同时被击穿
  • 解决思路:
    • 随机过期时间(无时间性要求)
    • 预加载(可以提前获取到数据的),比如我在key中加入日期,但前提是我们可以提前获取到下一天的数据
    • 强依赖击穿方案

四、分布式锁的实现方式

posted @ 2020-09-16 07:14  gabin  阅读(245)  评论(0编辑  收藏  举报