当前位置: 首页 > article >正文

尚硅谷redis7 86 redis集群分片之3主3从集群搭建

86 redis集群分片之3主集群搭建

3主3从redis集群配置

找3台真实虚拟机,各自新建

        mķdir -p /myredis/cluster

新建6个独立的redis实例服务

        IP:192.168.111.175+端口6381/端口6382

                vim /myredis/cluster/redisCluster6381.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 6381
logfile "/myredis/cluster/cluster6381.log'
pidfile /myredis/cluster6381.pid
dir /myredis/cluster
dbfilename dump6381.rdb
appendonly yes
appendfilename "appendonly6381.aof"
requirepass 111111
masterauth 111111

cluster-enabled yes
cluster-config-file nodes-6381.conf
cluster-node-timeout 5000

cluster-enabled yes  //打开集群
cluster-config-file nodes-6381.conf  //声明集群配置文件
cluster-node-timeout 5000 //集群之间的超时时间5s

                vim /myredis/cluster/redisCluster6382.conf

        IP:192.168.111.172+端口6383/端口6384

        IP:192.168.111.174+端口6385/端口6386

        三主三从:

通过redis-cli命令为6台机器构建集群关系

启动6台redis机器实例

后面有[cluster]告诉你这是以集群方式启动的

构建主从的关系命令

--cluster create以集群形式创建

-- cluster-replicas 1 表示为每个master创建一个slave节点

集群联通成功后会产生nodes-6381.conf和nodes-6382.conf

链接进入6381作为切入点,查看并检验集群状态

info replication        查看主从状态

cluster nodes        查看集群节点之间的关系

cluster info        展示关于节点、集群健康状态、槽位、配置等的摘要信息。

88 redis集群分片之3主3从集群读写

当前连接6381 发现没有k1但有k2。set k1告诉你应该在6385

但在6385中可以set k1但却不能set k2,告诉你k2在6381

为什么报错?

如何解决

防止路由失效加参数-c并新增两个key

重新连接,记得加-c,-c的含义:开启客户端的 自动重定向支持(cluster support / follow MOVED/ASK redirects)

此时在6381连接的redis中set k1 v1会重定向到6385连接的redis

如何查看某个key属于哪个槽位

CLUSTER KEYSLOT k1

根据分片,12706应该落在6385上

89 redis集群分片之主从容错切换

主从容错切换迁移案例

容错切换迁移

  • 主6381和从机切换,先停止主机6381
    • 6381主机停了,对应的真实从机6384会不会上位? 会! 目前是3主2从

  • 再次查看集群信息
    • 6384变为主机且能够正常使用
  • 随后,6381原来的主机回来了,是否会上位?
    • 不会,并且以从节点形式回归

集群不保证数据一致性,一定会有数据丢失情况

Redis集群不保证强一致性,这意味着在特定的条件下,Redis集群可能会丢掉一些被系统收到的写入请求命令

手动故障转移or节点从属调整该如何处理

上面一换后6381、6384主从对调了,和原始设计图不一样了,该如何调换回去?

重新登陆6381机器

常用命令 CLUSTER FAILOVER

        此时6381重新变为主机,6384变为6381的从机

http://www.lryc.cn/news/2392789.html

相关文章:

  • Kaggle-Predict Calorie Expenditure-(回归+xgb+cat+lgb+模型融合+预测结果)
  • 【解决办法】Git报错error: src refspec main does not match any.
  • React与Vue的内置指令对比
  • 2025年5月24号高项综合知识真题以及答案解析(第1批次)
  • 【NATURE氮化镓】GaN超晶格多沟道场效应晶体管的“闩锁效应”
  • Ubuntu24.04换源方法(新版源更换方式,包含Arm64)
  • 26 C 语言函数深度解析:定义与调用、返回值要点、参数机制(值传递)、原型声明、文档注释
  • 彻底理解一个知识点的具体步骤
  • FFmpeg 时间戳回绕处理:保障流媒体时间连续性的核心机制
  • yolov8改进模型
  • PostgreSQL日常运维
  • << C程序设计语言第2版 >> 练习 1-23 删除C语言程序中所有的注释语句
  • Fluence (FLT) 2026愿景:RWA代币化加速布局AI算力市场
  • 如何撰写一篇优质 Python 相关的技术文档 进阶指南
  • 选择if day5
  • MiniMax V-Triune让强化学习(RL)既擅长推理也精通视觉感知
  • Hash 的工程优势: port range 匹配
  • 同为.net/C#的跨平台运行时的mono和.net Core有什么区别?
  • 前端安全直传MinIO方案
  • HackMyVM-Dejavu
  • LeetCode Hot100(动态规划)
  • Opencv实用操作5 图像腐蚀膨胀
  • 【赵渝强老师】OceanBase的部署架构
  • (18)混合云架构部署
  • c/c++的opencv霍夫变换
  • AAOS系列之(七) --- AudioRecord录音逻辑分析(一)
  • MySQL大表结构变更利器:pt-online-schema-change原理与实战指南
  • LangChain【3】之进阶内容
  • 大规模JSON反序列化性能优化实战:Jackson vs FastJSON深度对比与定制化改造
  • 【OpenSearch】高性能 OpenSearch 数据导入