Redis高可用之集群模式

一台机器上模拟Redis集群

创建方式1:redis-cli

1、创建一个文件夹redis-cluster,然后在其下面分别创建6个文件夹如下
mkdir -p /usr/local/src/redis/redis-cluster
mkdir 7001、mkdir 7002、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006
2、把 redis.conf 配置文件分别copy到700*下,修改各个文件内容
daemonize yes
port 700*(分别对每个机器的端口号进行设置)
bind 192.168.56.101(绑定当前机器的ip)
dir /usr/local/src/redis/redis-cluster/700*/(数据文件存放位置)
cluster-enabled yes(启动集群模式)
cluster-config-file nodes700*.conf
cluster-node-timeout 5000
appendonly yes
3、分别启动6个redis实例,检查是否启动成功
/usr/local/src/redis/redis-5.0.8/src/redis-server /usr/local/src/redis/redis-cluster/700*/redis.conf
ps -ef | grep redis
4、创建集群(redis5之前是用redis-trib.rb操作集群的)
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster create --cluster-replicas 1 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005 192.168.56.101:7006
5、验证
5.1、连接任意一个客户端即可:./redis-cli -c -h -p(-c表示集群模式,指定ip地址和端口号)如:/usr/local/src/redis/redis-5.0.8/src/redis-cli -c -h 192.168.56.101 -p 700*
5.2、进行验证:cluster info(查看集群信息)、cluster nodes(查看节点列表)
5.3、关闭集群则需要逐个进行关闭,使用命令:redis-cli -c -h 192.168.56.101 -p 700* shutdown

创建方式2:create-cluster(推荐使用,如需改更多配置则修改redis.conf或者create-cluster)

1、修改配置
cd /usr/local/src/redis/redis-5.0.8/utils/create-cluster
vi create-cluster
PORT=7000起始端口,不含
TIMEOUT=2000
NODES=6节点数量,3主3备
REPLICAS=1
2、集群操作(参考readme文件,或者直接看create-cluster)
./create-cluster create创建
./create-cluster start启动
./create-cluster stop停止

添加节点:注意创建方式1和创建方式2的区别,这里以方式1为例

1、创建7007、7008文件夹,拷贝并修改redis.conf后启动
2、主节点加入集群:/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster add-node 192.168.56.101:7007 192.168.56.101:7001
在这里插入图片描述
3、查看集群状态,可以看到还没有分配slot槽
/usr/local/src/redis/redis-5.0.8/src/redis-cli -c -h 192.168.56.101 -p 7001
cluster nodes
Redis高可用之集群模式_第1张图片
4、为7007分配槽,使用集群中的任意一个主节点重新分片
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster reshard 192.168.56.101:7001
会询问要分多少个槽?分给哪个节点?
How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? 678500d6bd55775a9be7f7112b4124fff8d68093
有两种方式,all是所有节点都作为分配槽的源节点,done是自己选择从哪个节点上取槽
Please enter all the source node IDs.
Type ‘all’ to use all the nodes as source nodes for the hash slots.
Type ‘done’ once you entered all the source nodes IDs.
这里输入all
5、查看集群状态,可以看到已经分配slot槽
Redis高可用之集群模式_第2张图片
6、从节点加入集群
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster add-node 192.168.56.101:7008 192.168.56.101:7001
7、执行REPLICAS命令来指定当前节点(从节点)的主节点id为哪个
/usr/local/src/redis/redis-5.0.8/src/redis-cli -c -h 192.168.56.101 -p 7008
CLUSTER REPLICAS 678500d6bd55775a9be7f7112b4124fff8d68093提示OK表示成功

删除节点

1、删除从节点7008:输入del-node命令,指定删除节点ip和端口,以及节点id
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster del-node 192.168.56.101:7008 04f5f0e37784c7ec0fe59fb93c7a369c86e2f39b
2、删除主节点7007:槽全部移入7001,分别输入槽数量、7001节点id、7007节点id、done
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster reshard 192.168.56.101:7007
Redis高可用之集群模式_第3张图片
此时7007没有槽了,删除即可
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster del-node 192.168.56.101:7007 678500d6bd55775a9be7f7112b4124fff8d68093

你可能感兴趣的:(集群)