纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

三台服务器使用docker搭redis哨兵,概念整合spri

11月27日 蚀肉堂投稿
  一、前言
  redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。
  redis有两种高可用的方案:HighavailabilitywithRedisSentinel(哨兵)ScalingwithRedisCluster(分片集群)
  第一个就是我们本次的要搭建的,就是高可用的哨兵,主redis挂掉,哨兵会进行投票进行故障转移!
  第二个就是分片集群,哨兵的一个缺点就是只能存在一个master节点,写的效率太低。分片集群就是解决哨兵的问题,可以水平扩展,提高redis的性能!
  哨兵最低配是三哨兵,以奇数递增。
  分片集群最低配是三主三从。
  小编之前写过一篇在一台机器上搭建的文章,大家有兴趣可以先去体验一下,实际生产上不会让你一台机器上;也没有任何意义,服务器挂了,再多的集群也全部挂掉了!!
  dockercompose搭建redis7。0。4高可用一主二从三哨兵集群并整合SpringBoot【图文完整版】二、准备
  首先我们要准备:
  三台服务器(没有的条件的搭三个虚拟机),巧了小编就是虚拟机哈!
  三台机器的ip和名称在表格里整理一下!
  ip
  redis节点名称
  sentinel节点名称
  192。168。239。131
  redismaster
  redissentinel1
  192。168。239。130
  redisslave1
  redissentinel2
  192。168。239。128
  redisslave2
  redissentinel3三、Sentinel概念
  RedisSentinel在不使用RedisCluster时为Redis提供高可用性。
  Sentinel功能的完整列表:监控:Sentinel不断检查您的主实例和副本实例是否按预期工作。通知:Sentinel可以通过API通知系统管理员或其他计算机程序,其中一个受监控的Redis实例出现问题。自动故障转移:如果master没有按预期工作,Sentinel可以启动一个故障转移过程,其中一个副本被提升为master,其他额外的副本被重新配置为使用新的master,并且使用Redis服务器的应用程序被告知要使用的新地址连接时。自动更新配置:Sentinel充当客户端服务发现的权威来源:客户端连接到Sentinels以询问负责给定服务的当前Redismaster的地址。如果发生故障转移,Sentinels将报告新地址。
  官方哨兵搭建条件:您至少需要三个Sentinel实例才能进行可靠的部署。三个Sentinel实例应该放置在被认为以独立方式发生故障的计算机或虚拟机中。因此,例如在不同可用区上执行的不同物理服务器或虚拟机。
  详细介绍和使用:请见官网官网详细文档:https:redis。iodocsmanagementsentinel四、一主二从搭建
  话不多说,咱们直接开始搭建哈!1。创建挂载目录
  三台机器上新建目录:
  首先我们开启三个xshell窗口,然后同时操作三个窗口创建
  在这里插入图片描述
  然后再左下角选择发送到全部窗口!cdmkdirmydatacdmydatamkdirrediscdredismkdirdatamkdirconfcdconf2。在192。168。239。131机器上编辑文件vimredis。conf
  输入以下内容:任何都可以连接redisbind0。0。0。0配置master密码requirepass123456宕机后成为从要连接master的密码masterauth123456开启持久化appendonlyyes
  在这里插入图片描述3。在192。168。239。130机器上编辑文件vimredis。conf
  输入以下内容:配置master的ip和端口号replicaof192。168。239。1316379任何都可以连接redisbind0。0。0。0成为master后的密码requirepass123456连接master密码masterauth123456开启持久化appendonlyyes
  在这里插入图片描述4。在192。168。239。128机器上编辑文件vimredis。conf
  输入以下内容:配置master的ip和端口号replicaof192。168。239。1316379任何都可以连接redisbind0。0。0。0成为master后的密码requirepass123456连接master密码masterauth123456开启持久化appendonlyyes5。192。168。239。131启动redisdockerrunp6379:6379nameredismastervmydataredisdata:usrlocaletcredisdatavmydataredisconfredis。conf:usrlocaletcredisredis。confdredisredisserverusrlocaletcredisredis。conf
  查看启动日志:dockerlogsfredismaster
  在这里插入图片描述6。192。168。239。130启动redisdockerrunp6379:6379nameredisslave1vmydataredisdata:usrlocaletcredisdatavmydataredisconfredis。conf:usrlocaletcredisredis。confdredisredisserverusrlocaletcredisredis。conf
  可以看到已经连接到master节点了!
  在这里插入图片描述
  7。192。168。239。128启动redis
  dockerrunp6379:6379nameredisslave2vmydataredisdata:usrlocaletcredisdatavmydataredisconfredis。conf:usrlocaletcredisredis。confdredisredisserverusrlocaletcredisredis。conf
  在这里插入图片描述8。进入192。168。239。130容器查看
  我们查看master日志,可以看到两个从节点已经加入进来了!
  在这里插入图片描述
  我们进入容器进行在次查看:dockerexecitredismasterbinbash
  连接redis:rediscli
  登录redisauth123456
  在这里插入图片描述
  查看从节点:info
  也是可以看到有两个从节点!
  在这里插入图片描述五、搭建三哨兵sentinel1。创建挂载目录
  还是三个虚拟机一起创建mkdirsentinelcdsentinelvimsentinel。conf
  输入下面内容:port26379sentinelmonitorredismaster192。168。239。13163792sentinelauthpassredismaster123456sentineldownaftermillisecondsredismaster6000sentinelparallelsyncsredismaster1sentinelfailovertimeoutredismaster6000
  第二行:Redis监控一个名为redismaster的redis集群,我们可以随意写;后面就是ip,我们宿主机的ip即可,端口为主redis的端口;2为哨兵投票的票数,当主redis宕机,三个哨兵必须两个哨兵都投票的redis才会变为主!!
  第三行:配置master的密码
  第四行:Sentinel判断实例进入主观下线所需的时间,毫秒单位。
  第五行:限制在一次故障转移之后,每次向新的主节点同时发起复制操作节点个数,越大效率越慢。
  第六行:在指定的时间内未能完成failover故障转移,则任务故障转移失败。
  在这里插入图片描述2。运行192。168。239。131哨兵dockerrunp26379:26379nameredissentinel1vmydataredissentinelsentinel。conf:usrlocaletcredissentinel。confdredisredissentinelusrlocaletcredissentinel。conf3。运行192。168。239。130哨兵dockerrunp26379:26379nameredissentinel2vmydataredissentinelsentinel。conf:usrlocaletcredissentinel。confdredisredissentinelusrlocaletcredissentinel。conf3。运行192。168。239。128哨兵dockerrunp26379:26379nameredissentinel3vmydataredissentinelsentinel。conf:usrlocaletcredissentinel。confdredisredissentinelusrlocaletcredissentinel。conf4。待解决问题
  这里创建三个哨兵,查看却是有四个,不知道什么问题,换了虚拟机还是不行!有大佬懂的可以分享一下哈!!
  在这里插入图片描述六、测试主从和故障转移1。测试主从复制
  master节点创建一个键值对:setab
  在这里插入图片描述
  从查看key是否存在:geta
  在这里插入图片描述
  主从没有问题哈!2。测试故障转移
  我们把master停掉,查看一个哨兵的日志:dockerstopredismasterdockerlogsfredissentinel1
  我们看到192。168。239。130成为master!
  在这里插入图片描述
  重新启动原来的master:
  dockerrestartredismaster
  在这里插入图片描述
  故障转移成功!!七、整合springboot1。导入依赖
  小编的springboot版本为:2。7。4dependencygroupIdorg。springframework。bootgroupIdspringbootstarterdataredisartifactIddependencydependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependency2。yml配置
  password密码和sentinel同级,不然找不到密码,验证失败server:port:8087spring:redis:密码和sentinel同级,不然找不到密码,验证失败password:123456sentinel:sentinel。conf里的集群名称master:mymaster我们只需要连哨兵即可,哨兵内部会帮我们找到redisnodes:192。168。239。131:26379192。168。239。130:26379192。168。239。128:263793。json序列化配置authorwangzhenjundate2022112410:37ConfigurationpublicclassRedisConfig{BeanSuppressWarnings(value{unchecked,rawtypes})publicRedisTemplateObject,ObjectredisTemplate(RedisConnectionFactoryconnectionFactory){RedisTemplateObject,ObjecttemplatenewRedisTemplate();template。setConnectionFactory(connectionFactory);Jackson2JsonRedisSerializerserializernewJackson2JsonRedisSerializer(Object。class);使用StringRedisSerializer来序列化和反序列化redis的key值template。setKeySerializer(newStringRedisSerializer());template。setValueSerializer(serializer);Hash的key也采用StringRedisSerializer的序列化方式template。setHashKeySerializer(newStringRedisSerializer());template。setHashValueSerializer(serializer);template。afterPropertiesSet();}}4。新建controller测试authorwangzhenjundate2022112410:37RestControllerpublicclassTestController{AutowiredprivateRedisTemplateredisTGetMapping(redis)publicvoidsaveRedis(){redisTemplate。opsForValue()。set(test,看到我就成功了);}}5。测试
  http:localhost:8087testredis
  在这里插入图片描述
  6。查看redis
  在这里插入图片描述八、总结
  经过一天的搭建,终于完成了,虽然不是完美的,但是大体功能是没有问题的!但是不影响故障转移和主从复制!
  唯一的遗憾:三个哨兵,查看就是四个!从第三个哨兵加入后变为4个!
  如果对你有帮助,还请不要吝啬您的发财小手,你的一键三连是我写作的动力,谢谢大家哈!!
  可以看下小编的微信公众号,和网站文章首发看,欢迎关注,一起交流哈!!
投诉 评论 转载

新机型密集亮相国产手机品牌提升消费回暖来源:【宁夏日报】新功能令人目不暇接、线下门店人流旺盛、出货量环比上升3月以来,多家国产手机厂商密集发布新机型,手机消费出现回暖向好趋势。3月21日,OPPO公司发……霍金末日预言是真的?地球的警告今年这么热可能只是个起点而已这些年来,我们经常说气候变暖,或许有一些朋友觉得气候变暖是伪命题,说了这么多年为什么还没看到地球急剧升温?地球气候变暖,并不是说地球的温度要在短时间内发生巨变,而是一个缓慢的过……华为p50新一代的8848P50发布会后,大家都在吐槽价格虚高,在没有5g,搭载高通骁龙888的基础上,折叠屏的优势并不能弥补价位的缺点。问题是它为什么定价这么高?很简单,因为我们不是它针对的客户群体啊……三国杀登陆Steam,喜提差评如潮!网友狗都不玩Steam上有着数万款游戏,得到好评如潮评价的游戏不算很多,能被打上差评如潮的更是稀罕。想要拿到这项殊荣并不容易,首先要拥有足够多的评测数量(传说是800条以上),并且需……2022年女排世锦赛中国女排能走多远?今年9月份举办的女排世锦赛要是按照以下阵容出战能否保八争四?14人名单:主攻4人:李盈莹、吴梦洁、仲慧、王云蕗(大蕗蕗估计会在哦〔灵光一闪〕);副攻4人:王媛……队长爆料塞维利亚仅剩13人大黄蜂核心重伤诺维奇主帅下课队长爆料12月30日【西汉姆联两将恢复训练】西汉姆联主教练莫耶斯更新了球队的伤病情况:斯卡马卡(脚踝受伤)、阿格尔德(世界杯疲劳感染病毒)最近几天都已经恢复了训练,……三台服务器使用docker搭redis哨兵,概念整合spri一、前言redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。redis有两种高可用的方案:Highavaila……生辰宝宝起名改名字精选邓姓带宇字好听的女孩名字精选邓什么宇好听女孩名字一、邓什么宇名字好听女孩邓函宇(hny)姓名笔画:8614画出自:1、廖行之的《玩易斋其一》三椽函宇宙,一卷肇乾坤。……获姚明宽恕?李梦入选国家队集训名单,首次亮相送队友生日祝福聚焦体坛资讯,关注热点新闻。男足反腐工作如火如荼地进行着,此前男篮也正开展纠差纠错行动,不过就在正当间,女篮出现场外新闻,那便是疑似昔日女篮领队张隆前妻在网络上曝光李梦知……韩国研发出新材料30分钟内自动修复汽车划痕我要上头条汽车上的划痕可能会成为过去:韩国科学家研发出一种新涂层材料,当它暴露在阳光下时,会在30分钟内自行愈合。如果涂抹在汽车划痕上,同样会将其遮盖。研究人员在正午的阳……假球高潮!曝中超球队遭遇前所未有的打击,恐有一半左右球队涉案电视剧狂飙里有一句经典台词:风浪越大,鱼越贵。而中国足坛前一段时间已经开始了反腐扫黑风暴,有球员、俱乐部官员、足协官员先后被查。截至目前已经有不少人涉案,不过此事没有就此……华为WATCHFIT2来啦!支持飞盘橄榄球等新潮运动你心动没【手机中国新闻】7月4日,华为WATCHFIT2正式发布,作为年轻人的运动社交新装备,华为WATCHFIT2延续FIT系列年轻潮流的基因,在外观设计,健康功能等诸多方面都有着不……
一个农村留守妇女抵抗不过的生理的渴求(图)80后农村童年回忆80年代的农村样子回忆童年图片韩国公开无人登月飞船开发计划投资超6000亿韩元70年代农村生活图片70年代中国农村生活珍贵照片回忆华为64MP3800mAh66W,跌至历史新低价,现在值不值法律是有生命的法诠网的科技锻造之路中国人怎样娶到越南女人答案竟是如此简单越南女人特点关于越南妹子的那些特点总结(图)男人年过50喝酒要注意,牢记1喝2不喝,早点知道益处多越南女人身上隐藏着惊人秘密意想不到(图)千万别娶越南女人!真相惊人(图文)极品中国艺术,极品中国古玩艺术

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形