rediss集群 三主三从集群模式

  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

rediss集群 三主三从集群模式_第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

rediss集群 三主三从集群模式_第2张图片rediss集群 三主三从集群模式_第3张图片

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节点不可用】

rediss集群 三主三从集群模式_第4张图片

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

6、集群异常时如何处理

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

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

rediss集群 三主三从集群模式_第5张图片

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

rediss集群 三主三从集群模式_第6张图片

rediss集群 三主三从集群模式_第7张图片

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

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

127.0.0.1:7001> cluster info

rediss集群 三主三从集群模式_第8张图片

8、集群中节点的操作

1)、从节点的删除

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

rediss集群 三主三从集群模式_第9张图片

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

rediss集群 三主三从集群模式_第10张图片

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

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

rediss集群 三主三从集群模式_第11张图片

你可能感兴趣的:(redis)