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

用Dockercompose编排令你头疼的Redis集群

  redis常用架构主从一主多从主从读写分离
  daemonize no docker要求容器内至少有一条前台进程,故不能设置为守护进程 从节点设置主节点ip replicaof  version: "3"  services:   master:     image: redis     container_name: redis-master     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-master-follower/master/conf:/etc/redis       - /usr/local/etc/docker-compose/redis-master-follower/master/data:/data       - /usr/local/etc/docker-compose/redis-master-follower/master/log:/log     ports:       - 6380:6379     networks:       redisNet:         ipv4_address: 192.168.88.80     follower:     image: redis     container_name: redis-follower     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-master-follower/follower/conf:/etc/redis       - /usr/local/etc/docker-compose/redis-master-follower/follower/data:/data       - /usr/local/etc/docker-compose/redis-master-follower/follower/log:/log     ports:       - 6381:6379     networks:       redisNet:         ipv4_address: 192.168.88.81    networks:   redisNet:     external: true
  sentinel哨兵保证高可用,解决主节点宕机后无法写入的问题主节点挂掉后哨兵会发布sdown(主观宕机),当sdown数量达到预设值时即为odown(客观宕机)一般配置成半数sdown即odown,所以sentinel架构最小单位应为1主2从3哨兵哨兵启动成功后写入myid设置哨兵监控的主服务器和odown数(sdown数累计达到odown即开启故障转移主从切换) sentinel monitor mymaster 192.168.11.128 6379 2  x秒不回应即单sentinel判定为sdown sentinel down-after-milliseconds  单次故障转移最长时间,超过则认定为故障转移失败 sentinel failover-timeout mymaster 10000   当发生failover主备切换时最多可以有多少个slave同时对新的master同步,数字越小favilover越快.通常设为1 sentinel parallel-syncs    哨兵启动后自动写入的唯一id,每个sentinel不一样,故不能用同一份配置文件 sentinel myid这里哨兵容器应该等待redis容器先启动,使用depends_on控制version: "3"  services:   master:     image: redis     container_name: redis-master     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-sentinel/master/conf:/etc/redis       - /usr/local/etc/docker-compose/redis-sentinel/master/data:/data       - /usr/local/etc/docker-compose/redis-sentinel/master/log:/log     ports:       - 6380:6379     networks:       redisNet:         ipv4_address: 192.168.88.80    follower1:     image: redis     container_name: redis-follower1     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-sentinel/follower1/conf:/etc/redis       - /usr/local/etc/docker-compose/redis-sentinel/follower1/data:/data       - /usr/local/etc/docker-compose/redis-sentinel/follower1/log:/log     ports:       - 6381:6379     networks:       redisNet:         ipv4_address: 192.168.88.81    follower2:     image: redis     container_name: redis-follower2     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-sentinel/follower2/conf:/etc/redis       - /usr/local/etc/docker-compose/redis-sentinel/follower2/data:/data       - /usr/local/etc/docker-compose/redis-sentinel/follower2/log:/log     ports:       - 6382:6379     networks:       redisNet:         ipv4_address: 192.168.88.82           sentinel1:     image: redis     depends_on:       - master       - follower1       - follower2     container_name: redis-sentinel1     command: /bin/bash -c "redis-sentinel /etc/redis/redis-sentinel.conf"     volumes:       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel1:/etc/redis       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel1/data:/data       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel1/log:/log     ports:       - 26379:26379     networks:       redisNet:         ipv4_address: 192.168.88.83    sentinel2:     image: redis     depends_on:       - master       - follower1       - follower2     container_name: redis-sentinel2     command: /bin/bash -c "redis-sentinel /etc/redis/redis-sentinel.conf"     volumes:       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel2:/etc/redis       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel2/data:/data       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel2/log:/log     ports:       - 26380:26379     networks:       redisNet:         ipv4_address: 192.168.88.84    sentinel3:     image: redis     depends_on:       - master       - follower1       - follower2     container_name: redis-sentinel3     command: /bin/bash -c "redis-sentinel /etc/redis/redis-sentinel.conf"     volumes:       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel3:/etc/redis       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel3/data:/data       - /usr/local/etc/docker-compose/redis-sentinel/sentinel/sentinel3/log:/log     ports:       - 26381:26379     networks:       redisNet:         ipv4_address: 192.168.88.85   networks:   redisNet:     external: trueredis-cluterredis5.0之后可以直接使用redis-cli创建集群,不再需要ruby.redis会将slot平均分配给master.所有数据操作都会通过CRC16(key) mod 16384得到的值决定此次操作所在分区.cluster  cluster-enabled yes 开启集群模式  cluster-node-timeout:连接超时时间  cluster-announce-ip:集群各节点IP地址(以下不配置也行,redis会自动搜索)  cluster-announce-port:集群节点映射端口  cluster-announce-bus-port:集群总线端口  cluster-require-full-coverage no  redis cluster需要16384个slot都正常的时候才能对外提供服务,换句话说,只要任何一个slot异常那么整个cluster不对外提供服务。 因此生产环境一般为noversion: "3"  services:   master1:     image: redis     container_name: redis-cluster1-master     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-cluster/cluster1/master:/etc/redis       - /usr/local/etc/docker-compose/redis-cluster/cluster1/master:/data       - /usr/local/etc/docker-compose/redis-cluster/cluster1/master:/log     ports:       - 6379:6379     networks:       redisNet:         ipv4_address: 192.168.88.80    follow1:     image: redis     container_name: redis-cluster1-follower     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-cluster/cluster1/follower:/etc/redis       - /usr/local/etc/docker-compose/redis-cluster/cluster1/follower:/data       - /usr/local/etc/docker-compose/redis-cluster/cluster1/follower:/log     ports:       - 6380:6379     networks:       redisNet:         ipv4_address: 192.168.88.81    master2:     image: redis     container_name: redis-cluster2-master     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-cluster/cluster2/master:/etc/redis       - /usr/local/etc/docker-compose/redis-cluster/cluster2/master:/data       - /usr/local/etc/docker-compose/redis-cluster/cluster2/master:/log     ports:       - 6381:6379     networks:       redisNet:         ipv4_address: 192.168.88.82    follow2:     image: redis     container_name: redis-cluster2-follower     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-cluster/cluster2/follower:/etc/redis       - /usr/local/etc/docker-compose/redis-cluster/cluster2/follower:/data       - /usr/local/etc/docker-compose/redis-cluster/cluster2/follower:/log     ports:       - 6382:6379     networks:       redisNet:         ipv4_address: 192.168.88.83    master3:     image: redis     container_name: redis-cluster3-master     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-cluster/cluster3/master:/etc/redis       - /usr/local/etc/docker-compose/redis-cluster/cluster3/master:/data       - /usr/local/etc/docker-compose/redis-cluster/cluster3/master:/log     ports:       - 6383:6379     networks:       redisNet:         ipv4_address: 192.168.88.84    follow3:     image: redis     container_name: redis-cluster3-follower     command: /bin/bash -c "redis-server /etc/redis/redis.conf"     volumes:       - /usr/local/etc/docker-compose/redis-cluster/cluster3/follower:/etc/redis       - /usr/local/etc/docker-compose/redis-cluster/cluster3/follower:/data       - /usr/local/etc/docker-compose/redis-cluster/cluster3/follower:/log     ports:       - 6384:6379        networks:       redisNet:         ipv4_address: 192.168.88.85  networks:   redisNet:     external: true这里yml中的master/follower没有实际意义,具体的主从分配是redis决定的.docker-compose成功启动六个redis容器之后,进入任意一个,配置redis-cluster集群.编排容器 docker-compose up -d  进入容器 docker exec -it container_id -bin/bash  配置redis集群,每个master一个follower redis-cli --cluster create 192.168.88.80:6379 192.168.88.81:6379 192.168.88.82:6379 192.168.88.83:6379 192.168.88.84:6379 192.168.88.85:6379 --cluster-replicas 1
  如图,16384个slot平均分配给三台master.绑定关系为
  83 replicaof 82
  85 replicaof 81
  84 replicaof 80

点赞,中国版骨科手术机器人来了沈慧经点科学提起医疗机器人,很多人脑海中浮现的是达芬奇。不过,今天小编要给大家介绍的这个家伙可是拥有纯正的中国血统,而且个人能力丝毫不逊色于达芬奇,它是谁呢?答案揭晓中国人自己研发亚马逊CEO我的手机被人监控,有人坏我名声!大人物纷纷甩锅!据每日邮报报道,当地时间3月30日,亚马逊的CEO贝索斯发表了一份声明,他说自己的手机信息已经泄露,并随时被人监控,自己的情人事件的曝光极有可能就是背后人所做的事情。背后到底是何方工作996,生病ICU葡萄语录言论,是业界生态最原生的反映。游戏葡萄于每周末推出葡萄语录,蠡测业内百态,臧否各色人物,将互联网有触感接地气的一面呈现给诸位读者。1。老板总监宁有种乎?葡萄吐槽这就是不严格遵守公司真牛!中国这款飞机有一项了不起的功能,被坠毁竟然自己返回翼龙无人机早几年的时候,美国国防部就预计,未来将有大部分空战是在无人机之间展开的,而飞行员则可以安然无恙地坐在地面上,这样可以大大减少伤亡率。从目前的发展状况来看,随着技术的不断发超详细MySQL数据库优化前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大单反已成过去式,无反相机大势已成,未来更将因人工智能而爆发在过去的一年里,尼康和佳能都加入到了无反相机的竞争中,并且已经毫无疑问地会在无反相机这条道路上继续发展下去,产品格局也发生了彻底的扭转。我在对这些相机进行了解和测试的过程中,一直在南山必胜客腾讯和老干妈的欠债纠纷,终于迎来了最后的结果大家好,我是猪小小,一位正在头条创业的小白我希望能通过这个平台能结识不同的朋友喜欢我的,右上角点点关注吧!!!如果没有这件事的发生,国内的销售行业可能有你们三个的一席之地。腾讯从来智能家电很耗电吗?山西电网专业人员细解疑惑近年来,随着消费不断升级,人们对家电产品要求更加智能化舒适化,因而智能扫地机器人智能冰箱等智能化的家电产品开始取代一些基础型产品,并广泛地进入居民家中。这些高大上的智能家电,耗电量编码器十问1。什么是编码器?旋转编码器,也称为轴编码器,是一种机电设备,用于将轴的角位置转换为数字或模拟信号。2。差分输出和单端输出有什么区别?单端输出的编码器有一组信号A通道B通道和One共同社日本将管制AI摄像头及人脸识别系统出口共同社网站近日报道称,据有关人士透露,日本政府日前初步决定对利用人工智能(AI)的摄像头和人脸识别系统等尖端技术设备采取新的出口管制措施,日方将就此同美国等国家开展合作。报道称,在iphoneSe3规格再曝A155。4英寸刘海屏,有望支持双卡双待说起iphoneSE系列,这绝对是用户最喜爱的系列之一,它作为入门款iphone机型,价格非常亲民,但性能却一点不含糊。随着iphoneSe2发布近两年后,iphoneSe3也终于
通底层逻辑的全域自研七年前,零跑科技创始人朱江明决定跨入智能汽车行业。他曾是浙江大华技术股份有限公司的创始人之一。作为功成名就的创业老兵,他毅然决定从零开始,投入造车新势力的浪潮。朱江明曾说他的梦想是收纳整洁最佳辅助工具精臣D101标签打印机作为一个有洁僻的处女座,我在闲暇时总会不自觉地进行各种物品的整理和收集,然后就是用各种小盒子收纳和归类,再然后就是找出便签纸打上各种标记和备注了。但每当时间长了以后,不牢靠的便签纸苹果手机appstore应用商店限免应用(5月25日)十款限免应用白嫖指南如何获得视频中软件1用手机扫码下载所需要的app2在appstore输入软件名称查找3长按图片选择识别二维码什么是限时免费的软件限时免费是开发者将软件的价格临时调整为0元!走向立体化的淘宝远中近场电商的融合与诞生时相比,如今的淘宝已经发生了翻天覆地的变化。在2022天猫超级品牌私享会上,阿里巴巴国内数字商业板块总裁戴珊表示,基于过去一年的共同努力,淘宝天猫的消费者规模从前年的8亿增加推特股价两天涨超30公司将任命马斯克为董事会成员据央视财经报道,当地时间5日,美国社交媒体平台推特公司发布声明,宣布将任命其最大股东特斯拉首席执行官马斯克为董事会成员,而在此前一天,美国证券交易委员会披露的文件显示,马斯克已持有官方直降400元,12GB512GBE5旗舰屏,还买什么小米12?屏幕作为手机最重要的硬件配置之一,一直都十分受消费者重视,而手机厂商们为了吸引消费者也在想方设法的提升自家手机屏幕的吸引力,在这种情况下,分辨率刷新率触控采样率等参数均被手机厂商们华为本月新品手机笔记本智慧屏全都有,还有神秘产品闩IT之家4月6日消息,据华为荣耀爆料博主厂长是关同学消息,华为本月将举行一次新品发布会,预计将发布新款手机笔记本智慧屏手表和手环,另外还有一款神秘产品,代号为闩。从代号来看,这款神i茅台登顶下载榜单!这7款宝藏app,让你的手机秒变黑科技茅台官方推出的抢酒app上线短短几天就霸榜应用商店榜首,今天就来分享7款同样是下载榜单上的黑马的手机app。1。太平洋知科技这是一个了解数码产品科技资讯的app。很多数码爱好者聚集小米哪部手机最受欢迎?雷军发起投票小米6遥遥领先小米创始人雷军于4月4日微博发文,在小米12周年到来之际,调查网友们最喜欢小米的哪部手机。入选的机型是米粉在微博中留言的。如有遗漏,请大家补充,比如,小米11雷军签名版。票选的几款三星被爆重大安全漏洞,涉及多款手机,黑客可以随时控制手机三星手机的一个重大缺陷可能会让您容易受到攻击。如果三星智能手机没有进行安全更新,它们很容易受到黑客的攻击。黑客可以拨打电话,甚至恢复出厂设置。用户应立即进行安全升级,以确保安全。安别写错了,你知道如何防止反射和序列化破坏单例模式吗?反射破坏单例单例模式一般构造方法都是private,目的就是为了防止外界调用私有构造器创建多个实例,通过一个public的共有方法作为外界获取实例的唯一入口,从而实现单例。但是反射