主从复制

https://blog.csdn.net/weixin_44642403/article/details/110692692

主从模式
info replication
​
# 切换为主机
​
slaveof no one

主从复制风暴问题

多个从节点同时复制主节点导致主节点压力过大,可以让新节点复制从节点数据。

复制模式

哨兵模式

https://blog.csdn.net/weixin_44642403/article/details/110692692

info sentinel
​

主机宕机

集群模式

https://blog.csdn.net/weixin_44642403/article/details/118885921

是否集群模式就是多组主从?

集群模式并不是简单的“多组主从”,而是更复杂的分布式系统。虽然集群中的每个分片确实包含一个主节点和一个或多个从节点,但集群模式还包含了以下特性:

  • 数据分片:数据被分成多个片段,每个片段由一个主节点和多个从节点负责。

  • 一致性哈希:使用一致性哈希算法来分配键到不同的分片。

  • 自动故障转移:集群本身支持自动故障转移,无需外部工具如 Sentinel。

  • 负载均衡:读写请求会被均匀地分散到多个节点上

# --cluster create 创建集群实例列表 IP:PORT IP:PORT IP:PORT
# --cluster-replicas 复制因子1(即每个主节点需1个从节点)
redis-cli -a Jiutian.123 --cluster create --cluster-replicas 1 192.168.244.128:36379 192.168.244.128:36380 192.168.244.128:36381 192.168.244.128:36382 192.168.244.128:36383 192.168.244.128:36384

查看集群信息
cluster info
​
cluster nodes

查看所有 key
redis-cli -c --cluster  call 192.168.244.128:36379 keys \* -a Jiutian.123

主机宕机

宕机前,36380 是主机,其从节点:【36382】

36380 宕机后,36382 变为主机

36380 恢复后,其只能成为 36382 的从机

集群操作

主节点添加(4)

# 使用如下命令即可添加节点将一个新的节点添加到集群中
# --cluster add-node 添加节点 新节点IP:新节点端口 任意一个存活节点IP:任意一个存活节点端口
redis-cli -a Jiutian.123 --cluster add-node 192.168.244.128:36381 192.168.244.128:36379

槽位迁移(2、5)

# 使用如下命令进行槽位迁移,需要输入槽位数量,分配给谁,分配谁的(输入all表示从所有的取一部分)
# --cluster reshard 任意一个存活节点IP:任意一个存活节点端口
redis-cli -a Jiutian.123 --cluster reshard 192.168.244.128:36379

删除主节点(3)

删除之前,需要先把要删的槽位移到其他节点。

# 执行如下命令删除节点
# --cluster del-node 任意一个存活的节点IP:任意一个存活的节点端口 要删除节点ID 
redis-cli -a Jiutian.123 --cluster del-node 192.168.244.128:36379 cd538c45b7d788b2e4ce98a7849e4f07f44b0421

从节点添加(6)

# --cluster add-node 添加节点 新节点IP:新节点端口 任意一个存活节点IP:任意一个存活节点端口
redis-cli -a Jiutian.123 --cluster add-node 192.168.244.128:36384 192.168.244.128:36379
​
# 连接需设为从节点的Redis服务
redis-cli -a Jiutian.123 -p 36384
# 将当前节点分配为 cd538c45b7d788b2e4ce98a7849e4f07f44b0421 的从节点
cluster replicate cd538c45b7d788b2e4ce98a7849e4f07f44b0421

删除从节点(1)

# --cluster del-node 任意一个存活的节点IP:任意一个存活的节点端口 要删除节点ID 
redis-cli -a Jiutian.123 --cluster del-node 192.168.244.128:36379 1c79c9639997bec7a37753681235c5ffaa2e604d
​

重新分配槽位(7)

重新分配槽位慎用!!!,该功能可以让集群的槽位重新平均分配但是由于涉及到槽位大量迁移会导致整个 Redis 阻塞停止处理客户端的请求。

# --cluster rebalance 任意一个存活的节点IP:任意一个存活的节点端口
redis-cli -a Jiutian.123 --cluster rebalance 192.168.244.128:36379
​

我也放荡不羁爱自由!