范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

聊聊如何利用redis实现多级缓存同步

  前阵子参加业务部门的技术方案评审,故事的背景是这样:业务部门上线一个专为公司高管使用的系统。这个系统技术架构形如下图:
  按理来说这个系统因为受众很小,可以说基本上没并发,业务也没很复杂,但就是这么一个系统,连续2次出现数据库宕机,而导致系统无法正常运行。因为这几次事故,业务部门负责人组织这次技术方案评审,主题如何避免再次出现类似这种故障?
  当时有个比较资深的技术,他提出当数据库出现宕机时,可以切换到redis,redis里面缓存热点数据,另外一个技术说他赞同这个方案,但他提出不需要用到redis,直接用本地缓存即可。因为tomcat是集群部署,就等于本地缓存也具备了集群能力。而如果切换成redis,redis也可能会挂现象。
  然后那个说用redis的技术又说,用本地缓存,如果数据变更,其他集群的本地缓存如何感知数据已经发生变化,他觉得还是用redis靠谱,首先redis容量肯定是比本地缓存高,而且redis也可以部署集群,可用性可以得到保障,利用redis集中存储,当数据发生变更,其他集群也可以感知到。
  在他们争论不休的情况下,有人提出不然就同时使用,当数据库挂了,切换到redis,redis挂了,使用本地缓存。这个方案得到不少人的同意,包括这两个争论不休的技术。但使用这种方案,就得考虑多级缓存数据如何同步。
  铺垫了那么多,才刚要说今天的主题,多级缓存数据如何进行同步多级缓存数据同步
  1、方案一:使用MQ或者canal进行同步
  方案如下图:
  如果是使用MQ来同步,实现方案大致如下,数据发生变更,业务系统发送变更数据到MQ,其他系统从MQ消费。
  如果是使用canal,实现方案大致如下,数据发生变更,canal会接到到变更的binlog,业务系统编写canal tcp客户端,和canal进行交互获取变更数据
  2、方案二:利用redis6提供的客户端缓存机制
  方案如下图:
  redis6客户端缓存实现机制原理,官方有详细文档介绍,感兴趣大家可以查看如下链接 redis.io/docs/manual…
  这边就讲下如何使用如何使用redis6客户端缓存
  前置条件:redis服务端版本必须是>=6。lettuce版本>=6 目前java的redis客户端找了一圈,貌似只有lettuce 6支持,其他客户端估计后期会支持
  1、项目中pom引入lettuce GAV               io.lettuce             lettuce-core             6.1.8.RELEASE         
  2、利用lettuce6提供的ClientSideCaching进行实现    /**      * 客户端缓存同步      *      */     public String getClientCacheValue(Map clientCache,String key){         StatefulRedisConnection connect = redisClient.connect();       //  Map clientCache = new ConcurrentHashMap<>();         CacheFrontend frontend = ClientSideCaching.enable(CacheAccessor.forMap(clientCache),                 connect, TrackingArgs.Builder.enabled().noloop());         return frontend.get(key);     }
  3、测试    @Override     public void run(ApplicationArguments args) throws Exception {         while(true){             System.out.println(lettuceRedisTemplate.getClientCacheValue("zhangsan"));             TimeUnit.SECONDS.sleep(1);         }     }
  redis里面的zhangsan数据未发生变更时,
  控制台输出的数据为
  我们将redis zhangsan的密码改成9999,
  看本地缓存能否立马捕捉到
  控制台发现密码已经改成9999总结
  由示例我们可以看出redis6提供了一个很好的多级缓存同步的实现方案。
  我们再聊下那个技术评审的后续,后面业务部门并没有采用当mysql宕机,使用redis作为兜底,也没采用本地缓存,更没采用两者结合的方案。
  不知道大家开会的时候,有没有这样的体会,有时候我们在聊一个东西,后面聊着聊着就发散出去,把方向搞丢了。业务部门他们需要数据库宕机的解决方案吗,看着像是,其实他们更核心的需要,是业务系统不宕机。
  奥卡姆剃刀定律:如无必要,勿增实体。其实不管加redis或者本地缓存,额外都增加系统维护成本。因为系统本身不复杂,加了缓存,就要额外考虑缓存数据一致性等
  后面业务部门的处理方式,是将自己搭建的mysql,切换成云厂商的mysql。这样的好处是,云厂商的mysql会更稳定,其次当出现问题,可以找云厂商进行解决,毕竟云厂商的运维能力是比较强的,花钱买心安
  这次事故会让业务部门那么重视,主要是使用方是高管,如果是一般使用者,挂就挂吧,大不了重启,使用对象不一样,应急处理方式就不一样
  作者:linyb极客之路
  链接:https://juejin.cn/post/7179037112195350588

深圳房价会在三年内从5。4万平米降到3。3万平米吗?会,建议你别着急,再等等吧。等3年,3年后就能降到3万一方了,甚至还有可能国家免费发房子给还没买房的人呢。记住,先别着急买房,一定要等。一定会降,除了南山福田罗湖,其他区概率很大。北漂去天津生活压力会小吗?我是天津人,我来说说这个事情吧!我家的小区最近就搬来几户北漂家庭,一嘴的京腔,表面上看也是有文化素养的人,只是聊天的时候总忘不了说,天津毕竟不是北京,我们来这里只是为了换换环境,以四十岁中年妇女学习什么能找到月入五千的工作?如果不怕辛苦的话我觉得家政行业挺好的。我现在坐标深圳,小区里面的妈妈群里几乎每天都有找保姆,钟点工的需求。我自己说一下我的经历,生完老二通过中介找到一个特别好的月嫂,当时她是中介机如果你身边有一个写小黄文为职业的人,你会如何看待他?写小黄文为职业?那这个写作水平很高了!要知道一个小黄文要写的好,不是只靠卖肉的,还需要细致入微的描写,要让看的人心潮澎湃,激动万分的话,这可不是什么易事。如果这样的人是我朋友的话,当今农田里劳作都是老人,怎样才能改变这种现状?谈谈你的妙招?这种现状没有必要改变,老人愿意干且干,不愿意干了他的子女会接手干。这就是我的妙招。国家出台政策,给60岁以上老人发生活补助,或叫养老金,比如不低于一千元,且把他们的土地收回。,大辐人心不足蛇吞象的典故是怎么来的?一条蛇挡住了砍柴人的去路。这天他运气不错,早早的就砍了一担柴。他特别高兴,心想,趁早把柴挑到市场上去卖,多换些钱买米。他挑着柴,兴冲冲的往回走。走着走着,忽然看见有一条小蛇直挺挺的有人说出资给我建5层楼,一二楼归我,五年后全部给回我,可以吗?感觉有坑。可以是可以,把合同打好了。首先,明确建什么样的楼房,如果建简易楼,五层安全吗?不建简易楼,一二楼能挣钱的建好就归你,那这三四五楼他就出租我感觉五年连建房款他都回不来。所以你们有去见网友被骗的经历吗?08年我在QQ上面认识一个女网友,当时我在工地干活的时候脚受伤了,连续休养了几个月,当时还没有结婚,一个人觉得很无聊,去网吧上网,我就在QQ上找女网友加好友聊天,我加了很多女网友,机关任四级调研员好,还是去事业单位任一把手好?单位下属三个副处级事业单位,一把手都是50出头的老同志,按照规定,事业单位一把手可以干到60岁退休,期间不用担心提前退二线的问题。在外人看来,这是实打实的好处,毕竟好歹是单位的一把看守所的工作人员都是警察吗?当然不是啦!在看守所上班的工作人员除了人民警察外,还有辅警(不参与执法,相当于安保的角色,属于临时工)保安(相当于门卫的岗位,现在基本上是外包)保洁人员(基本上也属外包)驻所检察官多地自然灾害频发,这对秋收秋种有啥影响?老百姓该做点啥准备?祈祷祈祷祈祷全球气候加速变暖中。洪涝干旱高温极寒等极端天气越来越多了。人类灾难模式巳开启。地球的生态环境对人口的数量的承载能力是有限的。78亿人口,是地球生态无法承受之痛。只有少生
吕亚童再次呛声政府,要求上级单位来调查,到底谁在说谎山东女足球员吕亚童控诉强拆一事引起了社会的广泛关注,女足球员,违建,强拆几个热词连在一起,直接引爆舆论,目前官方通报后再无新发声,而吕亚童对官方通报提出十条质疑后再次在社交媒体发文到底是谁在说谎?吕亚童再次呛声,求助公安和上级单位,否认违建前言山东女足吕亚童最新发文,表示这两天的事,给她造成了极大的心理阴影,这到底发生了什么呢?最近,全网都在关注山东现役女足吕亚童老家违建和暴力强拆事件,这件事的知名度远比吕亚童女足事现在提倡人们生二胎,问过孩子的意见没家里多了个小Baby今天第二天抄书了,现在提倡生二胎三胎的,我想知道问没问孩子再有个弟弟妹妹她乐意吗,全家都宠着她一人,现在有弟弟妹妹来分她的爱,甚至为了照顾小的把大的忽略了,她愿意吗,本来妈妈的膝盖孩子要不要精细养,在山里吃山果喝山水,家里面大人从来不管1一样一样的我大宝照书养,从怀孕了就一直照书吃每个月该吃什么,该怎么吃,宝宝生下来也是没带过,一包尿不湿两到三天玩完一天洗到晚,就连晚上半夜都起洗,出去盖的严严实实的,后来我妈来才新学期,让孩子成为时间的主人盛年不重来,一日难再晨寸金使尽金还在,逝去时光哪里寻古往今来,人们一直传唱着时间的宝贵。但在刚刚过去的寒假,因孩子时间管理问题而引发的亲子矛盾却呈上升趋势。记者观察到,随着双减政策孩子说话口齿不清是怎么回事?到底要不要做语言康复训练如果说孩子在3岁以前说话口吃不清,但是在语法上没有明显的错误的话,家长可以观察并注意语言矫正即可,但是到了3岁以后孩子讲话时还是出现明显的口齿不清替代音省略音或歪曲音的时候,那么家周琦失业!凤凰队提前结束本赛季,CBA成唯一选择,死磕新疆男篮头条创作挑战赛2月9日,澳大利亚NBL联赛季后赛附加赛开打,国内球迷比较熟悉的东南墨尔本凤凰队对阵珀斯野猫,这场比赛凤凰队在前三节一直都处于领先,但第四节珀斯野猫突然发力,最终凤凰国乒女单惨败,今年首次全军覆没!6人输外战,伊藤美诚有望夺冠国乒女单惨败,今年首次全军覆没!6人输外战,伊藤美诚有望夺冠。2023年WTT安曼常规挑战赛女单18决赛,国乒19岁独苗韩菲儿以13输给了奥地利名将波尔卡诺娃,无缘8强,至此国乒女山西省2023年编导联考面试安排根据山西省招生考试管理中心关于做好2023年普通高校招生艺术类专业考试工作的通知和山西传媒学院考点安排,现将山西省2023年普通高考广播电视编导及戏剧影视文学专业联考(以下简称编导习近平同伊朗总统莱希举行会谈2023年2月14日下午,国家主席习近平在人民大会堂同来华进行国事访问的伊朗总统莱希举行会谈。习近平指出,中伊两国传统友好,两国关系经受住各种国际风云变幻考验。面对当前世界之变时代不花一分钱的装修,反而最贵!你心中的最美家装,是什么样的?广西一户农家给出了答案满满一墙奖状!在广西百色田东县义圩镇福旺村村民黄汉球家有仨娃黄雪梅黄雪鲜黄榜姐弟三人人人争气,刻苦学习来不及贴的奖状和荣誉证书桌