• 方圆的秒杀系统优化方案实战,(七)操作对缓存的更新


    1. 写在前头

    大家好,我是方圆。这篇写的是秒杀活动、商品在执行发布、上线和下线操作时对缓存的更新,对应分支是increase_refresh_cache,源码以该分支为准。

    本篇将对获取缓存的方法参数进行更改,并且对单条和列表缓存的key添加前缀,以上两处改动都是为了方便缓存的更新。

    • 之前单条缓存和列表缓存key值都采用的是QueryCondition的toString字符串,改动之后单条缓存为前缀 + ID的格式,列表缓存为前缀 + QueryCondition的toString字符串格式

    为什么要这么改?

    • 添加不同的前缀是为了将单条明细缓存和列表缓存区分开,并且列表缓存有了前缀之后,可以进行模糊匹配删除。因为列表缓存的更新是上述修改操作发生之后全部进行清除,我没有想到更好的对列表缓存的更新措施,因为目前无法确定在操作某一条数据时,列表缓存中是否存在该条数据,所以只能进行全部清除,除非,能想到更好的方法…

    缓存更新流程图如下,以秒杀活动为例(秒杀商品缓存的更新与此相似)

    注意这里我们采用的是借助本地事件处理器,alibaba.cola.event包下的事件处理器,同《高并发秒杀的设计精要与实现》中介绍的方法一致,发生如图上事件时对缓存进行更新。

  • 相关阅读:
    ARM概念
    python-django美食数据爬取及分析系统
    day08PKI以及综合实验
    Deep Learning for Anomaly Detection: A Review
    058_末晨曦Vue技术_过渡 & 动画之过渡的类名
    C++ 冒泡排序 Bubble Sort
    css实现Chrome标签栏
    文本编辑器vi--常用命令查阅版(记得收藏)
    Vue3开发最佳实践和实用技巧(上)
    docker 常用命令整理
  • 原文地址:https://blog.csdn.net/qq_46225886/article/details/123513769