笔记记录两个场景:

1:数据读写存储
a:一个新key数据来了,是否会按照预设的进入槽中?集群是否生效
2:容错切换迁移
a:如果master 6381挂了。那么对应的从6384是否会补位?

数据读写存储操作步骤:
1、启动6台机器构成的集群并通过exec进入

2:对6381新增两个key
查看当前6381机器上是否存在缓存key:

发现没有,则就来set k1 v1.

发现错误了。错误信息:
(error) MOVED 12706 192.168.50.128:6383
set k v是最简单的命令但不支持。
分析原因:
现在使用的是集群的,是有hash槽的。如下图:

可以看到,master 1 只能管理5461个槽。master2只能管理5462个。master3也是管理5461个槽。
集群的时候,是通过把key通过hash值,算出的hash值找到对应具体需要存放在哪个master上的。那么可能set的k1这个key经过hash之后,不在当前master1所管理的0~5460共5461个hash槽中。所以会报错。
试试存放其他的:

可以看到,set k2和k3的时候可以的。但是k1和k4是不行的。
k1和k4的错误:MOVED 12706和MOOVED 8455
这两个数字可能是hash槽。可以看到这两个值都大于master1所能管理的最大槽的值。master1最大槽值为:5460.因为使用的是redis-clie -p 6381 这种直连的方式连接的,所以master1存放不了。
3:防止路由 失效,加参数-c 并新增加两个key
如果是集群模式下,我们需要添加一个参数-c。来防止路由失效

重新set k1 k4试试。

可以看到,key路由到对应的master上了。
4:查看集群信息
命令公式:

redis-cli --cluster check ip:端口


容错切换迁移
假设master1(6381)宕机了,那么对应的slave4(6384)是否会正常补位。

步骤:

1:maser1 6381和从机6384切换,先停止主机6381
使用docker stop 容器id/或者容器names

停止后,等一会。因为集群之间有心跳检查。所以等待一会。

2:再次查看集群信息
因为6381已经宕机了。那么我们进入6382中,注意以集群的方式进入。需要加参数-c。


查看进群情况;

cluster nodes


注意看:我们发现集群还是6个。但是6481这特master,是fail了。6381对应的从及6384现在成了master.说明,从机补位了。
这就实现了故障容错切换迁移。
get下k1 k2 k3 k4看看情况:

可以正常获取

3:先还原之前的3主3从

4:查看集群状态

我们可以看到,虽然6381重新启动了。但是6381却成了6384的从节点了。

Docker部署笔记--Redis集群主从容错切换迁移相关推荐

  1. redis集群读写,容错切换,从属调整,扩容,缩容

    rediscluster 读写一定要注意redis实例的区间实例范围.需要路由到位. 比如 hashsolt=hash(k1) mod 16384=12706,而12706槽位不在6391上,在639 ...

  2. Docker高级篇-Docker容器内Redis集群配置

    Docker容器内Redis集群配置 1.三主三从集成配置 1.1.关闭防火墙.启动docker服务 1.2.新建6个docker容器实例 1.3.进入容器redis-node-1,构建主从关系 1. ...

  3. 读写分离oracle redis,redis集群主从之读写分离

    redis集群主从之读写分离 1.集群部署 这里就不详细赘述如何部署主从集群了,一般都是使用slaveOf配置来进行初始化配置. 2.与springboot集成实现读写分离 通过注解实现调用层读写分离 ...

  4. Day267.预约系统的性能瓶颈、营销活动无缝切换秒杀活动、预约系统数据迁移方案、高流量下预约系统搭建熔断机制、预约系统redis集群主从哨兵架构 -Redis的高并发预约抢购系统

    一.预约系统的性能瓶颈 1.预约系统应对热门爆品时的缺陷 用户进行预约会涉及到两个维度的数据变更一个是用户信息,一个是SKU信息,如图↓所示: 正常来说这么搞一点问题没有,即便涉及到写数据库,但是每个 ...

  5. s19.基于 Kubernetes v1.25 (kubeadm) 和 Docker 部署高可用集群(一)

    基于 Kubernetes v1.25 和 Docker 部署高可用集群 主要内容 Kubernetes 集群架构组成 容器运行时 CRI Kubernetes v1.25 新特性 Kubernete ...

  6. Docker Compose——搭建Redis集群

    环境配置 Docker 18.x Docker-Compose 3.7 Redis 6.2.5 主从(Master-Slave)模式 主从复制模式中包含一个主数据库实例(master)与一个或多个从数 ...

  7. Kafka之Docker部署Kafka kraft集群

    最近趁着有空想复习一下Kafka原理,之前学的是Kafka1.9的版本,需要Zookeeper作为基础,专门存放Kafka的元数据使用,如Broker.Consumer.Topic等:但下载的时候发现 ...

  8. Docker上配置Redis集群时出现No more cluster attempts left.

    Docker上配置时一定要更改每个redis.conf指定ip,端口和总线端口 # Example: cluster-announce-ip XXX.XXX.XXX.XXX(服务器公网ip) clus ...

  9. redis集群主从配置

    集群环境安装(ruby的环境云主机和虚拟机都不需要装) 因为集群命令文件需要ruby语言的支持(自行下载) http://www.ruby-lang.org/en/downloads/ 这个是下载地址 ...

最新文章

  1. Gridview Master/Detail JS
  2. CHM文件不能正确显示
  3. IOS开发之UIView
  4. 图像转换为二维数组存入DSP6748
  5. Asp.net Ajax AutoComplete 控件的用法
  6. esp32 rtc 时钟设置不对_咱们RTC时钟案例的时间为什么开始的时候总是2014年,怎么改呢?...
  7. sourceTree添加git密钥步骤
  8. Linux加密框架中的算法和算法模式
  9. Java 邮箱判断 正则表达式
  10. 首批吃螃蟹!35 所高校获批开设「人工智能」本科专业
  11. 虚拟键码对照表与ASCII对照表的整理
  12. 注解形式控制器配置(3)
  13. oracle日期大于3个月,用三个月时间做oracle实验,养成实验习惯
  14. 基于发起源判断CSRF***的方法
  15. Azure上七层负载均衡APP Gateway
  16. C#/VB.NET 读取条码类型及条码在图片中的坐标位置
  17. 计算机二级真题论文排版,计算机二级word真题:供应链的管理论文排版
  18. mysql复制表结构(包括索引)
  19. 阿尔伯塔大学的计算机科学专业好吗,[阿尔伯塔大学]计算机/计算机工程专业
  20. 高中英语语法(005)-五大句型(下)

热门文章

  1. 管中窥豹——应试教育与一流科学人才究竟有多远的差距
  2. (绝对防御勒索病毒)装机员 ghost win7 Sp1 64位纯净6月版
  3. 《数字图像处理》主编:曹茂永
  4. final、finally与finalize三者的区别
  5. HTML5期末大作业:在线音乐娱乐网站设计——在线音乐网站模板(22页) HTML+CSS+JavaScript web结课音乐作业的源码 线音乐网站毕业设计网页html
  6. 简单CRM系统开发(二)
  7. U-Net卷积神经网络
  8. 快播转型,用户且用切珍惜
  9. 2021年美亚杯个人资格赛(记录第一次的取证之旅)
  10. LLVM指令选择中的模式定义方法