分布式缓存架构设计
分布式缓存架构模式
数据缓存 缓存中存储业务数据
用什么缓存系统
如何解决数据一致性问题
数据实时性要求高或者都多写少
结果缓存
用什么缓存系统
缓存有效位与结果新鲜度的人平衡
计算量大但是数据实时性要求不高
一致性复杂度
先写缓存后写存储
写存储失败后数据异常
先写存储后写缓存
缓存不更新,读物数据异常
先删除缓存再写存储 适合用户相关数据
缓存异常时,数据异常
双删
本质 跨域存储和缓存实现事务,难度很大。
一致性解决方案
容忍不一致
简单但数据不一致
关系数据本地表事务 记录缓存异常并反复重试
复杂,但不一致时间短
消息队列异步删除
同上,且消息队列容易挂掉
缓存架构的三类问题
缓存穿透
缓存没有数据,请求直接访问存储。
空值缓存 应对爬虫试探或者攻击
缓存当前数据 应对爬虫爬历史数据
缓存预热 应对秒杀,大促
随即失效 处理批量生成缓存
缓存雪崩
缓存失效后导致性能急剧下降
存储系统无法响应
计算系统无法响应
更新锁 保证只有一个线程可以更新缓存
后台更新 由后台系统更新缓存 需要保证后台线程高可用
缓存热点
大部分访问命中单个热点,热点服务器崩溃
多副本缓存--无法预测热点,需要人工干预
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)