Redis7搭建主从+集群三主三从主从关系由集群分配

这篇具有很好参考价值的文章主要介绍了Redis7搭建主从+集群三主三从主从关系由集群分配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录文件不清晰的去Redis7搭建主从+哨兵了解

别忘记关闭防火墙

hash算法一致性

1背景–主从关系由客户端构建分配

三台虚拟机,一台虚拟机搭建两个redis 且两个不同的端口

第一台ip和分配两个端口	6381 6382 ---  		192.168.154.128 6381 6382
第二台ip和分配两个端口 6383 6384 ---		192.168.154.129 6383 6384
第三台ip和分配两个端口	6385 6386 ---		192.168.154.130 6385 6386

2在myredis目录下创建目录

命令 mkdir cluster 不要用 -->mkdir /cluster 加这 斜杠 / 就会报错,因为 斜杠 是在根目录下创建目录
或者用 mkdir -p /myredis/cluster 创建树形目录

3配置文件的信息放在对应虚拟机的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

redisCluster6382.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6382
logfile "/myredis/cluster/cluster6382.log"
pidfile /myredis/cluster6382.pid
dir /myredis/cluster
dbfilename dump6382.rdb
appendonly yes
appendfilename "appendonly6382.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6382.conf
cluster-node-timeout 5000

redisCluster6383.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6383
logfile "/myredis/cluster/cluster6383.log"
pidfile /myredis/cluster6383.pid
dir /myredis/cluster
dbfilename dump6383.rdb
appendonly yes
appendfilename "appendonly6383.aof"
requirepass 111111
masterauth 111111

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

redisCluster6384.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6384
logfile "/myredis/cluster/cluster6384.log"
pidfile /myredis/cluster6384.pid
dir /myredis/cluster
dbfilename dump6384.rdb
appendonly yes
appendfilename "appendonly6384.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6384.conf
cluster-node-timeout 5000

redisCluster6385.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6385
logfile "/myredis/cluster/cluster6385.log"
pidfile /myredis/cluster6385.pid
dir /myredis/cluster
dbfilename dump6385.rdb
appendonly yes
appendfilename "appendonly6385.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6385.conf
cluster-node-timeout 5000

redisCluster6386.conf配置信息

bind 0.0.0.0
daemonize yes
protected-mode no
port 6386
logfile "/myredis/cluster/cluster6386.log"
pidfile /myredis/cluster6386.pid
dir /myredis/cluster
dbfilename dump6386.rdb
appendonly yes
appendfilename "appendonly6386.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6386.conf
cluster-node-timeout 5000

4三台虚拟机分别在myredis/cluster目录下启动

第一台(192.168.154.128)
[root@localhost cluster]# redis-server redisCluster6381.conf
[root@localhost cluster]# redis-server redisCluster6382.conf
第二台(192.168.154.129)
[root@localhost cluster]# redis-server redisCluster6383.conf
[root@localhost cluster]# redis-server redisCluster6384.conf
第三台(192.168.154.130)
[root@localhost cluster]# redis-server redisCluster6385.conf
[root@localhost cluster]# redis-server redisCluster6386.conf

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

replicas 1 为每个主机分配一个从机 slave
-a 111111 这个是客户端登录的密码 具体密码是根据信息配置的来确定客户端密码

redis-cli -a 111111 --cluster create --cluster-replicas 1 192.168.154.128:6381 192.168.154.128:6382 192.168.154.129:6383 192.168.154.129:6384 192.168.154.130:6385 192.168.154.130:6386

6集群构建成功

Redis7搭建主从+集群三主三从主从关系由集群分配
Redis7搭建主从+集群三主三从主从关系由集群分配

7查看集群常用命令之间的关系 cluster nodes

Redis7搭建主从+集群三主三从主从关系由集群分配

Redis7搭建主从+集群三主三从主从关系由集群分配
Redis7搭建主从+集群三主三从主从关系由集群分配

8异常信息

[ERR] Node 192.168.154.129:6384 is not empty
Redis7搭建主从+集群三主三从主从关系由集群分配

8.1处理方法–客户端登录然后清除和重置:flushall 和 cluster reset

Redis7搭建主从+集群三主三从主从关系由集群分配

8.2redis-cli --cluster call : FLUSHALL

redis客户端如何查看中文 --raw

Redis7搭建主从+集群三主三从主从关系由集群分配

9插入数据失败,(error) MOVED 8941 192.168.154.129:6383

一定注意槽位的范围区间,需要路由到位,路由到位,路由到位,路由到位
就是说槽位之间要实现能跳转,才能达到集群的目的即数据之间共享的作用
Redis7搭建主从+集群三主三从主从关系由集群分配

9.1 解决办法 redis登录 携带 -c 实现集群间的读写

之前 redis-cli -a 111111 -p 6381
正确 redis-cli -a 111111 -p 6381 -c
原因:hash算法算出的 hash_slot 槽位不在此主机上,需要路由跳转重定向到另一台主机提供的槽位上,达到集群的效果即共享数据集的意义

Redis7搭建主从+集群三主三从主从关系由集群分配

10当某个主节点宕机其slave节点会顶上去成为master

Redis7搭建主从+集群三主三从主从关系由集群分配

Redis7搭建主从+集群三主三从主从关系由集群分配

11 机器宕机故障自动转移如何恢复原来是主机master从属关系?? cluster failover

Redis7搭建主从+集群三主三从主从关系由集群分配

13查看key所在槽位或者查询某个定义的key将会落的槽位

keyslot key  

Redis7搭建主从+集群三主三从主从关系由集群分配

13主从扩容

redisCluster6387.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 6387
logfile "/myredis/cluster/cluster6387.log"
pidfile /myredis/cluster6387.pid
dir /myredis/cluster
dbfilename dump6387.rdb
appendonly yes
appendfilename "appendonly6387.aof"
requirepass 111111
masterauth 111111

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

redisCluster6388.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 6388
logfile "/myredis/cluster/cluster6388.log"
pidfile /myredis/cluster6388.pid
dir /myredis/cluster
dbfilename dump6388.rdb
appendonly yes
appendfilename "appendonly6388.aof"
requirepass 111111
masterauth 111111
 
cluster-enabled yes
cluster-config-file nodes-6388.conf
cluster-node-timeout 5000

13.1上传到 第三台虚拟机上

Redis7搭建主从+集群三主三从主从关系由集群分配

13.2启动87/88两个新的节点实例,此时他们自己都是master

启动

[root@localhost cluster]# redis-server redisCluster6387.conf
[root@localhost cluster]# redis-server redisCluster6388.conf

看当前节点信息 cluster nodes

Redis7搭建主从+集群三主三从主从关系由集群分配

13.3加入集群(由老人带新人入集群)–绿色回复

将新增的6387作为master节点加入原有集群
redis-cli -a 密码 --cluster add-node 自己实际IP地址(新员工):端口号 自己实际IP地址(老员工):端口号
redis-cli -a 111111  --cluster add-node 192.168.154.130:6387 192.168.154.130:6385
6387 就是将要作为master新增节点
6385 就是原来集群节点里面的领路人,相当于6387拜拜6385的码头从而找到组织加入集群

Redis7搭建主从+集群三主三从主从关系由集群分配

13.4 检查集群情况第1次–槽位分配为空

redis-cli -a 111111 --cluster check 192.168.154.130:6385

Redis7搭建主从+集群三主三从主从关系由集群分配

13.5为最新master分配槽位

重新分派槽号
命令:redis-cli -a 密码 --cluster reshard IP地址:端口号
redis-cli -a 111111 --cluster reshard 192.168.154.130:6385

Redis7搭建主从+集群三主三从主从关系由集群分配

Redis7搭建主从+集群三主三从主从关系由集群分配

Redis7搭建主从+集群三主三从主从关系由集群分配

13.6为主节点6387分配从节点6388

命令:redis-cli -a 密码 --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID
 
redis-cli -a 111111 --cluster add-node 192.168.154.130:6388 192.168.154.130:6387 --cluster-slave --cluster-master-id xxx新主机idxxx-------这个是6387的编号,按照自己实际情况
------------------------------
redis-cli -a 111111 --cluster add-node 192.168.154.130:6388 192.168.154.130:6387 --cluster-slave --cluster-master-id a6f8f63687c2a3e26a1571fe8e1e6cc399e5677d

Redis7搭建主从+集群三主三从主从关系由集群分配

扩容成功–查看槽位分配情况

redis-cli -a 111111 --cluster check 192.168.154.130:6387

Redis7搭建主从+集群三主三从主从关系由集群分配

14主从缩容

查看目前运行状态

15集群常用命令

Redis7搭建主从+集群三主三从主从关系由集群分配

15集群异常–一般三主三从才对外服务

可以修改这个默认配置
cluster-require-full -coverage no
Redis7搭建主从+集群三主三从主从关系由集群分配

12总结

1、槽位范围 0 -16384 也就是 0-2^14
2、每个主机master 提供的槽位 是根据 16384 /主机数量 约等于的平摊槽位
3、文章来源地址https://www.toymoban.com/news/detail-409784.html

到了这里,关于Redis7搭建主从+集群三主三从主从关系由集群分配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • redis 三主三从高可用集群docker swarm

    redis集群(cluster)笔记 redis 三主三从高可用集群docker swarm redis 三主六从高可用docker(不固定ip) redis 三主六从高可用dockerswarm高级版(不固定ip) 由于数据量过大 ,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分

    2024年02月03日
    浏览(41)
  • 【kubernetes】k8s高可用集群搭建(三主三从)

    目录 【kubernetes】k8s高可用集群搭建(三主三从) 一、服务器设置 二、环境配置 1、关闭防火墙 2、关闭selinux 3、关闭swap 4、修改主机名(根据主机角色不同,做相应修改) 5、主机名映射 6、将桥接的IPv4流量传递到iptables的链 7、时间同步 8、master之间进行免密登录设置 三、

    2024年02月09日
    浏览(41)
  • 云服务器上使用Docker Compose创建Redis三主三从集群

    云服务器 Ubuntu20.4 Dokcer 24.0.2 目录结构是这样: 绿色的目录是用来存储容器中的文件,不需要我们手动创建,将路径配置在配置文件中即可。黑色的目录和文件需要自己手动创建。  我们一共创建7个容器: redis1~redis6是集群节点,redis_cluster是用来搭建主从关系的一个容器,搭

    2024年02月09日
    浏览(77)
  • redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式

    前言: redis部署集群常见的一般有三种模式:主从模式,Sentinel(哨兵模式),Redis Cluster(高可用Cluster集群),根据不同的需求可自定义选择部署方式。 Redis 主从模式(Replication) 优点: 数据备份:主节点的数据会复制到从节点,提供了数据冗余和一定程度的故障恢复能力

    2024年01月20日
    浏览(94)
  • Redis 搭建主从集群

    单节点的 Redis 并发能力有限,要进一步提高 Redis 的并发能力,就需要搭建主从集群,实现读写分离。 共包含三个节点,一个主节点,两个从节点。 这里我们会在同一台虚拟机中开启3个redis实例,模拟主从集群,信息如下: IP PORT 角色 192.168.150.101 7001 master 192.168.150.101 7002

    2024年02月14日
    浏览(51)
  • redis主从配置+集群搭建

    为什么需要主从配置????? 当出现高并发流量情况 如果我们只有一个 redis 服务器 挂掉之后 网站的运营会出现问题. 我们可以多弄几台 redis 服务器,使得一台服务器挂掉自动切换到另一台 redis 服务器,这个时候就实现了一个高可用的系统 主从配置 环境是2台 ubuntu serv

    2024年02月09日
    浏览(37)
  • Redis进阶:主从复制、集群搭建

    介绍:主机数据更新后根据配置和策略, 自动同步到备机的 master/slaver机制 , Master以写为主,Slave以读为主 ; 优点: 1) 读写分离 ,减轻主机的压力,性能扩展; 2) 容灾快速恢复 :某个从机宕机,可自动从其他的从机读取数据; 缺点: 复制延时 ,从机越多,复制延时

    2024年02月08日
    浏览(43)
  • 搭建Redis主从集群和哨兵

    说明:单机的Redis存在许多的问题,如数据丢失问题、高并发问题、故障恢复问题、海量数据的存储能力问题,针对这四个问题,对应解决方式有:数据持久化(参考:http://t.csdn.cn/SSyBi)、搭建主从集群、Redis哨兵和搭建分片集群; 本文介绍搭建Redis主从集群和哨兵,用以解

    2024年02月16日
    浏览(36)
  • Redis——主从复制+集群搭建(非哨兵)

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower); 数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。 默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个

    2024年02月12日
    浏览(31)
  • 使用Docker搭建Redis主从集群

    欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博客 关于博主 : 我是 请回答1024 ,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。 博客特色 : 在我的博客中,开设了如下专栏( 点击可以进入专栏奥~ ): Java、MySQL、Redis、Spring、SpringB

    2024年04月24日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包