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

Docder 搭建Redis分片集群 散片插槽 数据分片 故障转移 Java连接

介绍

使多个 Redis 实例共同工作,实现数据的水平扩展。通过将数据分片到多个节点上,Redis 集群能够在不牺牲性能的前提下扩展存储容量和处理能力,从而支持更高并发的请求。Redis 集群不仅支持数据分片,还提供了自动故障转移和高可用性功能。
在这里插入图片描述
这些主节点会相互的ping来达到自动故障转移

特点

  • 集群中有多个master,每个master保存不同数据
  • 每个master都可以有多个slave节点
  • master之间通过ping监测彼此健康状态 就不用哨兵了

部署文件

version: "3.2"services:r1:image: rediscontainer_name: r1network_mode: "host"entrypoint: ["redis-server", "--port", "7001", "--cluster-enabled", "yes", "--cluster-config-file", "node.conf", "--requirepass", "mypassword","--masterauth", "yourpassword"]r2:image: rediscontainer_name: r2network_mode: "host"entrypoint: ["redis-server", "--port", "7002", "--cluster-enabled", "yes", "--cluster-config-file", "node.conf", "--requirepass", "mypassword","--masterauth", "yourpassword"]r3:image: rediscontainer_name: r3network_mode: "host"entrypoint: ["redis-server", "--port", "7003", "--cluster-enabled", "yes", "--cluster-config-file", "node.conf", "--requirepass", "mypassword","--masterauth", "yourpassword"]r4:image: rediscontainer_name: r4network_mode: "host"entrypoint: ["redis-server", "--port", "7004", "--cluster-enabled", "yes", "--cluster-config-file", "node.conf", "--requirepass", "mypassword","--masterauth", "yourpassword"]r5:image: rediscontainer_name: r5network_mode: "host"entrypoint: ["redis-server", "--port", "7005", "--cluster-enabled", "yes", "--cluster-config-file", "node.conf", "--requirepass", "mypassword","--masterauth", "yourpassword"]r6:image: rediscontainer_name: r6network_mode: "host"entrypoint: ["redis-server", "--port", "7006", "--cluster-enabled", "yes", "--cluster-config-file", "node.conf", "--requirepass", "mypassword","--masterauth", "yourpassword"]

部署

 docker-compose up -d

集群连接

 进入任意节点容器
docker exec -it r1 bash

连接
将各个节点进行连接

  • redis-cli --cluster:代表集群操作命令
  • create:代表是创建集群
  • –cluster-replicas 1 :指定集群中每个master的副本个数为1
    • 此时节点总数 ÷ (replicas + 1) 得到的就是master的数量n。因此节点列表中的前n个节点就是master,其它节点都是slave节点,随机分配到不同master
redis-cli --cluster create --cluster-replicas 1 \
13.116.247.215:7001 13.116.247.215:7002 13.116.247.215:7003 \
13.116.247.215:7004 13.116.247.215:7005 13.116.247.215:7006 \
-a mypassword

在这里插入图片描述

查看集群状态

redis-cli -p 7001 -a mypassword cluster nodes

散片插槽

创建成功后 每一个主节点都会分配哈希散片插槽,Redis数据不是与节点绑定,而是与插槽slot绑定。当我们读写数据时,Redis基于CRC16算法对key做hash运算,得到的结果与16384取余,就计算出了这个key的slot值。然后到slot所在的Redis节点执行读写操作。
](https://i-blog.csdnimg.cn/direct/2a686123cce64462bce18deb498168c4.png)

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

相关文章:

  • 校园交友app/校园资源共享小程序/校园圈子集合二手物品交易论坛、交友等综合型生活服务社交论坛
  • Chaos Mesh云原生的混沌测试平台搭建
  • Vue3之组合式API详解
  • 大模型的构建与部署(3)——数据标注
  • AI发展与LabVIEW程序员就业
  • 本地事务 + 消息队列事务方案设计
  • pinctrl子系统学习笔记
  • 使用vue-element 的计数器inputNumber,传第三个参数
  • 如何从0构建一个flask项目,直接上实操!!!
  • Mongoose连接数据库操作实践
  • centos 7.9 freeswitch1.10.9环境搭建
  • Gitlab服务管理和仓库项目权限管理
  • LLMs之Llama-3:Llama-3.3的简介、安装和使用方法、案例应用之详细攻略
  • OpenCV函数及其应用
  • vulnhub靶场【DriftingBlues】之3
  • 文件上传—阿里云OSS对象存储
  • mybatis-plus超详细讲解
  • 【Linux】--- 进程的概念
  • Unity NTPComponent应用, 实现一个无后端高效获取网络时间的组件
  • go语言使用zlib压缩[]byte
  • Windows 配置 Tomcat环境
  • 【python从入门到精通】-- 第六战:列表和元组
  • Python | 数据可视化中常见的4种标注及示例
  • LearnOpenGL学习(高级OpenGL -> 高级GLSL,几何着色器,实例化)
  • Scala学习记录
  • vue使用pdfh5.js插件,显示pdf文件白屏
  • docker login 出错 Error response from daemon
  • Web 身份认证 --- Session和JWT Token
  • UE5制作倒计时功能
  • Linux去除注释和空行