rediss集群 三主三从集群模式

本文详细描述了如何构建Redis三主三从集群,包括配置文件设置、集群创建、节点监控、故障切换以及节点操作如添加和删除。重点介绍了在节点故障时的自动切换和集群状态维护方法。
摘要由CSDN通过智能技术生成
  1. 三主三从集群模式

1)、新建redis集群目录:7001~7006工作目录【/app/soft/redis-cluster/目下】

2)、在7001~7006 目录下创建bin和conf 目录,然后将/app/soft/redis/bin目录下的文件分别拷贝到7001~7006 目录,然后在7001~7006 目录conf文件夹创建redis.conf 文件。修改配置文件:

include /app/soft/redis-cluster/redis_common.conf

port 7006  【每个目录下端口自行定义,同一台服务器不能冲突】

#requirepass  1q2w3e4r

logfile "/app/soft/redis/logs/m.log"【日志路径可自行定义】

dir /app/soft/redis/data【数据存储路径可自行定义】

pidfile redis_m.pid

dbfilename dump_m.rdb

appendfilename "appendonly_m.aof"

cluster-enabled yes

cluster-node-timeout 15000

cluster-config-file nodes-7006.conf 【每目录文件名自行定义,一台服务器不能冲突】

4)、将redis编译安装后的配置文件/app/soft/redis-5.0.12/redis.conf 拷贝至/app/soft/redis-cluster/  目录并重命名为redis_common.conf

5)、修改配置文件redis_common.conf

#bind 127.0.0.1

protected-mode no

daemonize yes

6)、在001~7006 /bin目录下分别执行以下命令启动redis服务

./redis-server  ../conf/redis.conf

2、创建集群【进入redis解压目录/app/soft/redis-5.0.12/src】执行以下命令

./redis-cli --cluster create  127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

--cluster-replicas 1【表示主从复制节点比例1:1,不跟这些指令执行时候有可能出现2主4从模式。】分配好主节点Master和从节点Slave及solt(槽)的大小,默认redis集群中仅含有16384个槽点。

3、查看redis集群中各节点【进入redis解压目录/app/soft/redis-5.0.12/src,在集群中任意节点输入以下命令】

./redis-cli --cluster check localhost:7001

4、Redis集群的会根据数据的key值计算一个slot(槽位),然后把数据写入Master节点的Slot,对应的slave节点会和master节点进行主从同步。读取数据时也会根据一致性哈希算法从master节点读取数据。

查看各几点占用槽位的命令./redis-cli --cluster check  127.0.0.1:7001

5、当master节点挂掉(服务异常、内存溢出、宕机)时,对应slave节点才会启动充当Master节点

127.0.0.1:7001> shutdown【登录到节点7001,停止redis服务】

not connected>

not connected> exit

[domains@ensemble1 src]$ ./redis-cli --cluster check  127.0.0.1:7001

Could not connect to Redis at 127.0.0.1:7001: Connection refused

查看集群情况,在其他节点执行以下命令:./redis-cli --cluster check  127.0.0.1:7002【此时7001原来的slave节点升级为Master节点,7001节点不可用】

注意:必须3个或以上主节点,否则创建集群失败;且当存活主节点数小于总数一半时集群不可以用。需要重新启动集群

6、集群异常时如何处理

1)、某一个Mastar点服务异常时,对应的Slave节点会自动切换为新的Master节点,数据使用/app/soft/redis/data/ 目录下的数据。

2)、当异常节点服务恢复后,执行 ./redis-cli --cluster check  ip:端口,重新检查并将该节点添加到集群中。

3)、若出现对应的主从节点同时服务异常,则集群不可对外提供服务。需要尽快恢复节点

7、执行cluster info 命令查看集群状态信息

[domains@ensemble1 src]$ ./redis-cli   -c -p 7001【-c 以集群方式连接】

127.0.0.1:7001> cluster info

8、集群中节点的操作

1)、从节点的删除

./redis-cli --cluster del-node  127.0.0.1:7001 ebf3defc027d5ec32bbc491f0332cc652aae23ab【这个是要删除的节点ID】

2)、添加从节点

./redis-cli --cluster add-node  127.0.0.1:7001 127.0.0.1:7006 --cluster-slave --cluster-master-id 797d05071cc019b65d4f6ff3ce724b1f95bd0612

#添加节点时候一定要清楚节点中的数据

#127.0.0.1:7001 127.0.0.1:7006分别表示新加入的slave节点和集群中任意一个节点

#--cluster-slave表示加入的是slave节点

#--cluster-master-id表示slave对应的maste节点的ID

结果出现:make it join the cluster 表示节点添加成功

注意:添加的从节点必须清空数据才能添加,有数据的时候添加会报错。【登录需要添加的节点,执行flushdb命令清空redis数据库后再添加即可】

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker部署Redis集群三主三从架构是一个常见的高可用解决方案,它利用了Redis从复制机制,使得数据可以在多个节点之间备份和同步。以下是步骤: 1. **安装Docker**:首先确保你的机器上已经安装了Docker。 2. **创建镜像**:你可以基于官方的Redis镜像(`redis:latest`)创建自己的镜像,并配置为支持模式。例如,在Dockerfile中添加环境变量如`REPLICATION_MODE=master`或`slave`。 3. **启动服务**: - 节点(Master):在每个机上运行三个容器,设置其中一个为节点,其余两个作为副本。使用`docker run --name node1 -d redis:latest REPLICATION_MODE=master`等命令启动容器,记得调整机名以区分不同节点。 - 从节点(Slave):其他三个容器分别设置为从节点,连接到节点并开始同步数据。 4. **网络配置**:使用Docker网络将所有节点连接起来,保证它们可以通过网络通信。可以使用默认桥接网络,也可以自定义网络。 5. **监控与管理**:推荐使用像`docker-compose`这样的工具来管理和配置容器,这样可以方便地定义服务之间的依赖以及环境变量。 6. **负载均衡**:为了进一步提高可用性和容错性,可以考虑外部的负载均衡器或使用Redis哨兵(Sentinel)来监控节点的健康状况,并自动故障转移。 7. **验证集群**:在部署后,通过客户端测试各个节点的读写性能是否正常,确认集群已成功建立并能有效工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值