假设机器A,B,C都用到一个配置表的数据,服务一启动,会把配置表的所有数据缓存到每份机器上,定时器是每5分钟会重新从数据库加载一次到本地缓存,万一这5分钟内配置表发生更新,每个机器上的缓存就对应不上。
利用redis的 pub/sub 通知到所有在线的机器进行缓存删除
在线的服务器收到消息后,自己都去执行删除缓存的操作,并且立马重新刷新缓存

现在有一款直播互动APP,用送礼物的功能,有用户界面配置(如,更换界面语言),送礼物时风险用户过滤。当我要实现这个功能时,我可以预先把礼物列表,用户配置列表,风险用户列表,加载到本地缓存中。每台机器都有我预先加载好的数据,此时是一致的。
当用户张三更改了界面配置,可能是改了语言类型,或者后台运营人员把上架了新礼物,或者增加了一些风险用户名单,刚好这里所有的修改操作全部落在了机器A这台机器,机器A先写库,后重新从库中加载到本地缓存,此时机器A的数据是最新的,那用户张三在访问礼物列表时,有可能访问到了机器B,这时机器B还是老数据。
为了解决上面那个问题,可以添加上我写的工具包,在这3个类上分别添加订阅,每个类添加订阅时key要求都不一样,这样做的目的是为了保