网站建设合同 协议书,网络推广培训班,外包公司能去吗,用iis做的网站怎么更改端口有道无术#xff0c;术尚可求#xff0c;有术无道#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 动态扩容1.1 安装、启动1.2 加入新节点1.3 分配哈希槽1.4 加入从节点 2. 缩容2.1 删… 有道无术术尚可求有术无道止于术。 本系列Redis 版本 7.2.5 源码地址https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 动态扩容1.1 安装、启动1.2 加入新节点1.3 分配哈希槽1.4 加入从节点 2. 缩容2.1 删除从节点2.2 迁移哈希槽3.3 删除主节点 1. 动态扩容
Redis 集群支持动态增加节点实现扩容提高集群容量和数据处理能力接下来演示将之前三主三从扩容为四主四从。
1.1 安装、启动
新加节点网络访问地址如下 一台服务器
主节点四192.168.56.101:7000从节点四192.168.56.101:7001
安装、修改配置、启动这几个步骤和集群部署一样这里就不赘述了。
1.2 加入新节点
查看节点信息一台服务器
[rootlocalhost bin]# redis-cli -a cluster123456 cluster nodes
Warning: Using a password with -a or -u option on the command line interface may not be safe.
b5bde236f14f21f530a7095aaef3a98109009324 192.168.56.101:638316383 slave e909dc338f4c2fc7687cf4426d3b95956a90a8a8 0 1721384436435 2 connected
724c7b874dc0c37a462cd5ab59325203344f8008 192.168.56.101:637916379 myself,slave ce27fa445e987f75bddeeb68fc6fe440678ad1bb 0 1721384432000 7 connected
ce27fa445e987f75bddeeb68fc6fe440678ad1bb 192.168.56.101:638216382 master - 0 1721384434000 7 connected 0-5460
e909dc338f4c2fc7687cf4426d3b95956a90a8a8 192.168.56.101:638016380 master - 0 1721384435431 2 connected 5461-10922
0f1d8d6459ac4252636cb4b8e1764de9e277411c 192.168.56.101:639016390 slave 9f9c30c3f73106e256fdec27264fc8129e1287fd 0 1721384435000 3 connected
9f9c30c3f73106e256fdec27264fc8129e1287fd 192.168.56.101:638116381 master - 0 1721384435000 3 connected 10923-16383此时集群节点并不包含新节点信息需要使用 add-node 将新的主节点加入
[rootlocalhost bin]# redis-cli -a cluster123456 --cluster add-node 192.168.56.101:7000 192.168.56.101:6380命令说明
cluster123456 集群节点认证密码192.168.56.101:7000新加入的主节点192.168.56.101:6380负责扩容处理的节点原先集群中的任意主节点
打印日志日下 重新查看集群信息可以看到新节点
1.3 分配哈希槽
新节点此时没有分配哈希槽需要使用 reshard 命令重新分配集群中的哈希槽
[rootlocalhost bin]# redis-cli -a cluster123456 --cluster reshard 192.168.56.101:6380首先会提示分配多少哈希槽这里有四个主节点 16384/44096 所有输入 4096
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096接着输入新节点的 ID 将分配的哈希槽给新节点cluster nodes命令查看:
What is the receiving node ID? a95a0a529f62ff1793bf2c2cfc92ec51c96e1268接着提示从哪些节点移出这 4096 个哈希槽这些输入 all 表示从所有节点平摊移出
Please enter all the source node IDs.
to use all the nodes as source nodes for the hash slots.
Typedone
entered allthe source nodes IDs.
Source node #1all最后会打印一些迁移日志 重新查看节点信息可以看到新节点被分配了哈希槽 新节点的哈希槽并不是连续的分为了三个区间直接截取了其他节点的部分哈希槽如果是全部重新分配需要全部迁移这样成本高且效率很低。
1.4 加入从节点
接着使用 add-node 命令将新的从节点加入到集群中
[rootlocalhost bin]# redis-cli -a cluster123456 --cluster add-node 192.168.56.101:7001 192.168.56.101:7000 --cluster-slave --cluster-master-id a95a0a529f62ff1793bf2c2cfc92ec51c96e1268命令说明
cluster123456 集群节点认证密码192.168.56.101:7001新加入的从节点192.168.56.101:7000新从节点对应的主节点a95a0a529f62ff1793bf2c2cfc92ec51c96e1268主节点 ID
打印日志如下
重新查询节点信息可以看到新的主从节点都加入成功 2. 缩容
Redis 集群支持动态删除节点实现缩容从集群中移除节点将分配给该节点的哈希槽移动到其他现有节点上。接下来演示将上面的四主四从恢复为三主三从。
2.1 删除从节点
查看将被移除节点的信息
[rootlocalhost bin]# redis-cli -a cluster123456 cluster nodes
Warning: Using a password with -a or -u option on the command line interface may not be safe.
a95a0a529f62ff1793bf2c2cfc92ec51c96e1268 192.168.56.101:700017000 master - 0 1721394340000 8 connected 0-1364 5461-6826 10923-12287
78d33242164ad02901903b195f54aaa1b0e14420 192.168.56.101:700117001 slave a95a0a529f62ff1793bf2c2cfc92ec51c96e1268 0 1721394340538 8 connected首先需要删除从节点使用 del-node 命令输入从节点的地址、ID
[rootlocalhost bin]# redis-cli -a cluster123456 --cluster del-node 192.168.56.101:7001 78d33242164ad02901903b195f54aaa1b0e14420打印日志如下
查看节点信息可以看到从节点已经被移除 2.2 迁移哈希槽
删除主节点之前需要将当前节点中的哈希槽迁移出去这里直接将被删除节点中的 4096 个哈希槽全部移入到 6380 节点中使用 reshard 命令重新分配集群中的哈希槽
[rootlocalhost bin]# redis-cli -a cluster123456 --cluster reshard 192.168.56.101:6380输入4096
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096接着输入 6380 节点的 ID 接收哈希槽 cluster nodes命令查看:
What is the receiving node ID? e909dc338f4c2fc7687cf4426d3b95956a90a8a8
接着提示从哪些节点移出这 4096 个哈希槽这里输入删除节点的 ID输入 done 表示该节点将被删除
Please enter all the source node IDs.
to use all the nodes as source nodes for the hash slots.
Typedone
entered allthe source nodes IDs.
Source node #1: e909dc338f4c2fc7687cf4426d3b95956a90a8a8
Source node #2: done3.3 删除主节点
使用 del-node 命令删除主节点
redis-cli -a cluster123456 --cluster del-node 192.168.56.101:7000 a95a0a529f62ff1793bf2c2cfc92ec51c96e1268查看节点信息可以看到主节点也被移除了