缓存异常与一致性

  • 缓存异常:
    • 缓存穿透:请求缓存和数据库都不存在的数据,每次都要查数据库,缓存好像没有起到拦截流量作用。
      • 采用布隆过滤器过滤一定不存在key请求、key逻辑校验,不存在key请求设置缓存key-null
      • 布隆过滤器采用多个hash函数,若请求的key的多个hash值都存在,则可能存在,否则一定不存在
    • 缓存击穿:缓存热key过期,导致大量请求打到数据库上
      • 采用热key续期,重建缓存加互斥锁
    • 缓存雪崩:大量缓存key过期,大量请求打到数据库
      • 采用过期时间设置随机,防止同时大量缓存过期
  • 缓存一致性:
    • 更新mysql后,不管redis,由过期时间兜底
    • 更新mysql后也写入redis,可能有时序性问题,更常用直接删除,下次再加载缓存
    • 通过消息队列订阅mysql的binlog,实现缓存一致性,适用于缓存基本不过期时间的场景
相关推荐
qq_5298353510 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
阿桢呀1 天前
Redis实战篇《黑马点评》5
数据库·redis·缓存
01_1 天前
力扣hot100——LRU缓存(面试高频考题)
leetcode·缓存·面试·lru
Kerwin要坚持日更1 天前
一文讲解Redis中的主从复制
数据库·redis·缓存
Suk-god1 天前
【Redis】基础知识入门
数据库·redis·缓存
guihong0041 天前
Redis 深度解析:高性能缓存与分布式数据存储的核心利器
redis·分布式·缓存
qq_529835351 天前
Redis作为缓存和数据库的数据一致性问题
数据库·redis·缓存
艾斯比的日常2 天前
提升接口性能之缓存
缓存
想要打 Acm 的小周同学呀2 天前
Redis三剑客解决方案
数据库·redis·缓存