谁说集群的本地缓存不能清除的?

​背景

在项目开发中,用户端会遇到需要实时更新配置数据的需求,如果配置数据在单库中配置,当用户端访问量较大,单库压力也会很大,此时会引入本地缓存来环节数据库服务器的压力。在集群环境中,当运营在B端更新数据库配置数据,由于用户端缓存还未失效,因此用户即使不断刷新也不能及时更新出最新的数据,用户体验总会存在一点不如人意的缺陷。这里介绍一种使用redis发布订阅能力+本地缓存Caffeine实现实时更新本地缓存的方案。

 

 

整个过程分成两个阶段:

初始同步

本地缓存建议设置成不过期,那么可以达到脱库的效果

广播同步

订阅端

在第一次加载数据到缓存的时候,进行订阅

 

 

发布端

在更改数据的接口里对最新的数据进行发布,如果该更数据的接口在管理项目中,注意要和用户端使用同一个redis实例,否则无法通知到对应集群redis客户端的

 

 

发布订阅原理

Redis的发布与订阅功能由PUBLISH、 SUBSCRIBE、 PSUBSCRIBE等命令组成。通过执SUBSCRIBE命令, 客户端可以订阅一个或多个频道, 从而成为这些频道的订阅者(subscriber) :每当有其他客户端向被订阅的频道发送消息(message) 时, 频道的所有订阅者都会收到这条消息。客户端还可以通过执行PSUBSCRIBE命令订阅一个或多个模式, 从而成为这些模式的订阅者:每当有其他客户端向某个频道发送消息时, 消息不仅会被发送给这个频道的所有订阅者, 它还会被发送给所有与这个频道相匹配的模式的订阅者

news.it频道订阅图例:

向new.it频道发送消息

频道和模式的订阅关系

 

将消息发送给频道的订阅者和匹配模式的订阅者

 

交流

马老师曾经说过,“未来数据是共同分享的,才能提现它的价值!“,如果有更多项目使用场景,欢迎留言交流


如果您已阅读到此,感谢您对公众号里文章的认可,请动动你可爱的小指头关注微信公众号,每天都有硬核技术文章推送,就算离开也能找到回家的路

二维码如下或者公众号搜索“程序员的十万个为什么”:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的十万个为什么

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值