• 多台机器下本地缓存一致性解决(附带源码链接)


    问题:

    假设机器A,B,C都用到一个配置表的数据,服务一启动,会把配置表的所有数据缓存到每份机器上,定时器是每5分钟会重新从数据库加载一次到本地缓存,万一这5分钟内配置表发生更新,每个机器上的缓存就对应不上。

    解决方法:

    利用redis的 pub/sub 通知到所有在线的机器进行缓存删除
    在线的服务器收到消息后,自己都去执行删除缓存的操作,并且立马重新刷新缓存

    例子:

    现在有一款直播互动APP,用送礼物的功能,有用户界面配置(如,更换界面语言),送礼物时风险用户过滤。当我要实现这个功能时,我可以预先把礼物列表,用户配置列表,风险用户列表,加载到本地缓存中。每台机器都有我预先加载好的数据,此时是一致的。

    当用户张三更改了界面配置,可能是改了语言类型,或者后台运营人员把上架了新礼物,或者增加了一些风险用户名单,刚好这里所有的修改操作全部落在了机器A这台机器,机器A先写库,后重新从库中加载到本地缓存,此时机器A的数据是最新的,那用户张三在访问礼物列表时,有可能访问到了机器B,这时机器B还是老数据。

    为了解决上面那个问题,可以添加上我写的工具包,在这3个类上分别添加订阅,每个类添加订阅时key要求都不一样,这样做的目的是为了保

  • 相关阅读:
    Mac电脑版交互式原型设计软件 Axure RP 8汉化 for mac
    多线程之ThreadPoolExecutor
    Halide 配置 visual studio
    Ethereum技术架构介绍
    Servlet的生命周期
    tomcat-8.5.78连接oracle的步骤方式
    通过使用Amazon Neptune来预测电影类型初体验
    学信息系统项目管理师第4版系列20_风险管理
    初探Vue3环境搭建与vnm使用
    Cocos引擎加密方案解析
  • 原文地址:https://blog.csdn.net/weixin_39926871/article/details/125336798