- 缓存异常:
- 缓存穿透:请求缓存和数据库都不存在的数据,每次都要查数据库,缓存好像没有起到拦截流量作用。
- 采用布隆过滤器过滤一定不存在key请求、key逻辑校验,不存在key请求设置缓存key-null
- 布隆过滤器采用多个hash函数,若请求的key的多个hash值都存在,则可能存在,否则一定不存在
- 缓存击穿:缓存热key过期,导致大量请求打到数据库上
- 采用热key续期,重建缓存加互斥锁
- 缓存雪崩:大量缓存key过期,大量请求打到数据库
- 采用过期时间设置随机,防止同时大量缓存过期
- 缓存穿透:请求缓存和数据库都不存在的数据,每次都要查数据库,缓存好像没有起到拦截流量作用。
- 缓存一致性:
- 更新mysql后,不管redis,由过期时间兜底
- 更新mysql后也写入redis,可能有时序性问题,更常用直接删除,下次再加载缓存
- 通过消息队列订阅mysql的binlog,实现缓存一致性,适用于缓存基本不过期时间的场景
缓存异常与一致性
背帆2024-02-09 8:41
相关推荐
野生技术架构师10 小时前
Redis 和 MySQL 如何保证数据一致性?先更新数据库还是先删缓存,延迟双删、MQ、Canal 一次讲透愈努力俞幸运11 小时前
token,context window,top_p,temperature,skill,Harness EngineeringPatrick在香港11 小时前
Claude API 成本直降90%:Prompt Caching 提示词缓存 Python 实战NeilYuen1 天前
【vemory】高性能KV存储AOF方案设计LuminousCPP1 天前
数据结构基础篇(二):顺序表与链表全方位对比|从内存布局到 CPU 缓存理解底层差异spter。1 天前
Redis 与 Single-flight 的分工与协作清水白石0081 天前
Python 如何设计一个线程安全的缓存?从锁策略、LRU 到工程化实战小宋10212 天前
大模型应用如何控制成本与延迟:Token、缓存、流式和降级实战番茄炒鸡蛋加糖2 天前
项目技术点总结--四大核心技术+缓存大飞记Python2 天前
AI大模型Token计费全解析:输入/输出、缓存命中、阶梯计价一文看懂