redis-cluster集群

Redis-cluster是分布式网络服务集群,由多个主节点构成,每个节点可读可写。当主节点故障时,符合条件的从节点通过选举成为新的主节点。如果客户端请求错误节点,会收到跳转指令找到正确节点。文章还介绍了如何在六台机器上配置和管理Redis-cluster,包括添加和删除节点以及平衡槽位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理论:

Redis-cluster集群概念

  • 由多个Redis服务器组成的分布式网络服务集群;
  • 集群之中有多个Master主节点,每一个主节点都可读可写;
  • 节点之间会互相通信,两两相连;
  • Redis集群无中心节点。

集群选举原理分析(ping-pong机制):

选举流程:

  当slave发现自己的master变为FAIL状态时,便尝试发起选举,以期成为新的master。由于挂掉的master可能会有多个slave,从而存在多个slave竞争成为master节点的过程,其过程如下:

    1、 slave发现自己的master变为FAIL(失败)

    2、将自己记录的集群currentEpoch(选举轮次标记)加1,并广播信息给集群中其他节点

    3、其他节点收到该信息,只有master响应,判断请求者的合法性,并发送结果

    4、尝试选举的slave收集master返回的结果,收到超过半数master的同意后变成新Master

    5、广播Pong消息通知其他集群节点。

什么是跳转重定位

  当客户端向一个错误的节点发出了指令,该节点会发现指令的 key 所在的槽位并不归自己管理,这时它会向客户端发送一个特殊的跳转指令携带目标操作的节点地址,告诉客户端去连这个节点去获取数据。客户端收到指令后除了跳转到正确的节点上去操作,还会同步更新纠正本地的槽位映射表缓存,后续所有 key 将使用新的槽位映射表。

Redis-cluster集群最多可以挂多少台主机?

不能多于集群中的redis服务半数主机

实验部分:

六台机子修改名称:centos1--6

编写hosts文件

vim /etc/hosts

192.168.100.1 centos1
192.168.100.2 centos2
192.168.100.3 centos3
192.168.100.4 centos4
192.168.100.5 centos5
192.168.100.6 centos6

安装看redis7.0.4安装

修改配置文件:

#309行,redis后台运行
daemonize   yes    

#87行,监听地址                    
bind 192.168.100.1

#111行,关闭保护模式
protected-mode no 

#341行,pidfile文件对应端口
pidfile  /var/run/redis_6379.pid        

#138行,端口号 
port  6379                               

#354行,log日志路径,需自己创建
logfile "/var/log/redis/redis_6379.log"  

#1037行,修改密码
requirepass 123123

#1577,把注释去掉,开启群集
cluster-enabled  yes                     

#1585,集群的配置,配置文件首次启动自动生成
cluster-config-file  nodes_6379.conf     

#1591,超时时间15s
cluster-node-timeout  15000              

#1380行,aof日志开启,有需要就开启,它会每次写操作都记录一条日志
appendonly  yes                          

配置文件只有监听地址不一样,每台都写本机的ip地址,配置完后重启redis

systemctl restart redis

输入

redis-cli --cluster create --cluster-replicas 1  -a 123123 192.168.100.1:6379 192.168.100.2:6379 192.168.100.3:6379 192.168.100.4:6379 192.168.100.5:6379 192.168.100.6:6379

需要自己输入一个yes

 查看集群状态:

redis-cli --cluster check 192.168.100.1:6379

扩展:

当要加一台主时:配置文件除了监控ip,剩下都一样

添加到集群

redis-cli --cluster add-node  192.168.100.7:6379  192.168.100.2:6379 -a 123123

 开始分配卡槽

redis-cli --cluster reshard 192.168.100.7:6379

 

 写7的id号

  到这写个all

 查看状态

redis-cli --cluster check 192.168.100.1:6379 -a 123123

 

移除的话需要先把槽,再移除

#把要删除节点的槽移到集群内的主节点,ID号是从删除的到集群的
redis-cli --cluster reshard 192.168.100.1:6379 --cluster-from  5043fa8217a31fe57005af257f40872ed3658d65 --cluster-to 74ddc20adfd0458d3959b4b1944cbede1bbb0045 --cluster-slots 4096 -a 123123 

删除节点

redis-cli --cluster del-node 192.168.100.7:6379 5043fa8217a31fe57005af257f40872ed3658d65 -a 123123

 可以看到槽点不均衡

 可以用这条命令

redis-cli --cluster rebalance --cluster-use-empty-masters 192.168.100.1:6379 -a 123123

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值