分布式缓存架构设计

分布式缓存架构模式

  数据缓存  缓存中存储业务数据

    用什么缓存系统

    如何解决数据一致性问题

    数据实时性要求高或者都多写少

  结果缓存

    用什么缓存系统

    缓存有效位与结果新鲜度的人平衡

    计算量大但是数据实时性要求不高

    

一致性复杂度

  先写缓存后写存储

    写存储失败后数据异常

  先写存储后写缓存

    缓存不更新,读物数据异常

  先删除缓存再写存储 适合用户相关数据

    缓存异常时,数据异常

  双删

  本质 跨域存储和缓存实现事务,难度很大。

一致性解决方案

  容忍不一致

    简单但数据不一致

  关系数据本地表事务 记录缓存异常并反复重试

    复杂,但不一致时间短

  消息队列异步删除

    同上,且消息队列容易挂掉

 

缓存架构的三类问题

  缓存穿透

    缓存没有数据,请求直接访问存储。

    空值缓存 应对爬虫试探或者攻击

    缓存当前数据 应对爬虫爬历史数据

    缓存预热 应对秒杀,大促

    随即失效 处理批量生成缓存

  缓存雪崩 

    缓存失效后导致性能急剧下降

    存储系统无法响应

    计算系统无法响应

    更新锁 保证只有一个线程可以更新缓存

    后台更新 由后台系统更新缓存 需要保证后台线程高可用

  缓存热点 

    大部分访问命中单个热点,热点服务器崩溃

    多副本缓存--无法预测热点,需要人工干预

 

 

posted on   李某人的窥视  阅读(61)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示