当前位置: 首页 > news >正文

redis cluster新增节点

架构介绍

主机	       角色
10.0.0.11	master01
10.0.0.12	slave01
10.0.0.13	master02
10.0.0.14	slave02
10.0.0.15	master03
10.0.0.16	slave03
10.0.0.17	新增 master04
10.0.0.18	新增 slave04

配置新增的2个节点

可以参考《linux部署redis7.0.7版本》章节:https://www.cnblogs.com/zqfstack/p/18999667
2个节点的配置文件和之前节点的配置文件一样:

cat /data/redis/conf/redis.conf
# 基础配置
bind 0.0.0.0
port 6379
loglevel notice
logfile "/data/redis/log/redis.log"
pidfile /data/redis/redis.pid
daemonize yes
tcp-backlog 600 
timeout 0
tcp-keepalive 0# 持久化配置
dir /data/redis/data
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 1024mb
aof-load-truncated yes
aof-rewrite-incremental-fsync yes
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
rdbcompression yes
stop-writes-on-bgsave-error yes
rdbchecksum yes # 安全配置
requirepass 1qaz@WSX# 慢查询配置
slowlog-log-slower-than 1000000 
slowlog-max-len 50 #参数优化
maxclients 10000
maxmemory 2G
maxmemory-policy allkeys-lru
maxmemory-samples 5 
lua-time-limit 5000 # 集群配置
databases 16
masterauth 1qaz@WSX
cluster-enabled yes
cluster-config-file /data/redis/conf/cluster-config.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-require-full-coverage no

配置完配置文件重启:

systemctl restart redis
systemctl enable  redis
systemctl status redis

添加主节点

  1. 在任意的节点执行添加主节点的命令:
# 第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口:
redis-cli --cluster add-node 10.0.0.17:6379 10.0.0.11:6379 -a 1qaz@WSX
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 10.0.0.17:6379 to cluster 10.0.0.11:6379
>>> Performing Cluster Check (using node 10.0.0.11:6379)
M: 517e5630bfb0a3273b3cf0dd810f11997f2493dc 10.0.0.11:6379slots:[0-5461] (5462 slots) master1 additional replica(s)
M: 54394b240d3b8374a3145e92fd4934bfe67688ad 10.0.0.15:6379slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 52cdf1e8df84d9a57820c9e203daf80e241b1113 10.0.0.16:6379slots: (0 slots) slavereplicates 54394b240d3b8374a3145e92fd4934bfe67688ad
S: 8af4a3fb041f8225780748bd0c559b5604fecb6a 10.0.0.14:6379slots: (0 slots) slavereplicates 8ac8123b45f85b097dde14c1947335be7b3229f1
M: 8ac8123b45f85b097dde14c1947335be7b3229f1 10.0.0.13:6379slots:[5462-10922] (5461 slots) master1 additional replica(s)
S: 24acc1a09525df3c209e0ea75ab5aa24ac3bf047 10.0.0.12:6379slots: (0 slots) slavereplicates 517e5630bfb0a3273b3cf0dd810f11997f2493dc
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Getting functions from cluster
>>> Send FUNCTION LIST to 10.0.0.17:6379 to verify there is no functions in it
>>> Send FUNCTION RESTORE to 10.0.0.17:6379
>>> Send CLUSTER MEET to node 10.0.0.17:6379 to make it join the cluster.
[OK] New node added correctly.

添加完之后查看当前集群中的节点状态:

redis-cli -c -a 1qaz@WSX
127.0.0.1:6379> cluster nodes
412addaa1d545f65786a19c46d4089841398b68d 10.0.0.17:6379@16379 master - 0 1751602529241 0 connected
54394b240d3b8374a3145e92fd4934bfe67688ad 10.0.0.15:6379@16379 master - 0 1751602528233 4 connected 10923-16383
52cdf1e8df84d9a57820c9e203daf80e241b1113 10.0.0.16:6379@16379 slave 54394b240d3b8374a3145e92fd4934bfe67688ad 0 1751602527226 4 connected
517e5630bfb0a3273b3cf0dd810f11997f2493dc 10.0.0.11:6379@16379 myself,master - 0 1751602525000 2 connected 0-5461
8af4a3fb041f8225780748bd0c559b5604fecb6a 10.0.0.14:6379@16379 slave 8ac8123b45f85b097dde14c1947335be7b3229f1 0 1751602527000 3 connected
8ac8123b45f85b097dde14c1947335be7b3229f1 10.0.0.13:6379@16379 master - 0 1751602527000 3 connected 5462-10922
24acc1a09525df3c209e0ea75ab5aa24ac3bf047 10.0.0.12:6379@16379 slave 517e5630bfb0a3273b3cf0dd810f11997f2493dc 0 1751602528000 2 connected

已经看到我们新加的主节点,但现在还未分配槽位

为主节点分配哈希槽

注意:新添加的节点是没有哈希曹的,所以并不能正常存储数据,需要给新添加的节点分配哈希曹:哈希槽的配置不均匀,可能导致数据不同步;

重新分配哈希槽:

# ip:port 为当前redis集群任意节点ip和port,-a后面加密码
redis-cli --cluster reshard 10.0.0.11:6379 -a 1qaz@WSX

20250830152610
第一个空是指要分配多少个哈希槽(数量)?当前一共4个主节点,一共16384 个槽位,我们尽量进行平衡,16384/4=4096,分配4096个

第二个空是指要分配哈希槽的节点ID,我们输入新的主节点10.0.0.17的节点ID

第三个空Source node:指定需要分配的哈希槽来源,输入all(希望所有现有节点均匀释放槽位给新节点)

之后等待分配完成查看:
20250830152636
可以看到已经分配成功并且槽位是均匀的。

添加从节点

# 节点ID是指定的主节点ID
# 10.0.0.18:6379 是新加的从节点
# 10.0.0.17:6379 做为新从节点的主节点
redis-cli --cluster add-node --cluster-slave --cluster-master-id 412addaa1d545f65786a19c46d4089841398b68d 10.0.0.18:6379 10.0.0.17:6379 -a 1qaz@WSX
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 10.0.0.18:6379 to cluster 10.0.0.17:6379
>>> Performing Cluster Check (using node 10.0.0.17:6379)
M: 412addaa1d545f65786a19c46d4089841398b68d 10.0.0.17:6379slots:[0-1365],[5462-6826],[10923-12287] (4096 slots) master
M: 517e5630bfb0a3273b3cf0dd810f11997f2493dc 10.0.0.11:6379slots:[1366-5461] (4096 slots) master1 additional replica(s)
M: 8ac8123b45f85b097dde14c1947335be7b3229f1 10.0.0.13:6379slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 8af4a3fb041f8225780748bd0c559b5604fecb6a 10.0.0.14:6379slots: (0 slots) slavereplicates 8ac8123b45f85b097dde14c1947335be7b3229f1
S: 24acc1a09525df3c209e0ea75ab5aa24ac3bf047 10.0.0.12:6379slots: (0 slots) slavereplicates 517e5630bfb0a3273b3cf0dd810f11997f2493dc
S: 52cdf1e8df84d9a57820c9e203daf80e241b1113 10.0.0.16:6379slots: (0 slots) slavereplicates 54394b240d3b8374a3145e92fd4934bfe67688ad
M: 54394b240d3b8374a3145e92fd4934bfe67688ad 10.0.0.15:6379slots:[12288-16383] (4096 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 10.0.0.18:6379 to make it join the cluster.
Waiting for the cluster to join>>> Configure node as replica of 10.0.0.17:6379.
[OK] New node added correctly.

加完之后检查:

redis-cli --cluster check 10.0.0.11:6379 -a 1qaz@WSX
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
10.0.0.11:6379 (517e5630...) -> 0 keys | 4096 slots | 1 slaves.
10.0.0.17:6379 (412addaa...) -> 0 keys | 4096 slots | 1 slaves.
10.0.0.15:6379 (54394b24...) -> 0 keys | 4096 slots | 1 slaves.
10.0.0.13:6379 (8ac8123b...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 10.0.0.11:6379)
M: 517e5630bfb0a3273b3cf0dd810f11997f2493dc 10.0.0.11:6379slots:[1366-5461] (4096 slots) master1 additional replica(s)
M: 412addaa1d545f65786a19c46d4089841398b68d 10.0.0.17:6379slots:[0-1365],[5462-6826],[10923-12287] (4096 slots) master1 additional replica(s)
M: 54394b240d3b8374a3145e92fd4934bfe67688ad 10.0.0.15:6379slots:[12288-16383] (4096 slots) master1 additional replica(s)
S: 52cdf1e8df84d9a57820c9e203daf80e241b1113 10.0.0.16:6379slots: (0 slots) slavereplicates 54394b240d3b8374a3145e92fd4934bfe67688ad
S: 1e997db9e9d235de2f9cdf2465d93e476a99990f 10.0.0.18:6379slots: (0 slots) slavereplicates 412addaa1d545f65786a19c46d4089841398b68d
S: 8af4a3fb041f8225780748bd0c559b5604fecb6a 10.0.0.14:6379slots: (0 slots) slavereplicates 8ac8123b45f85b097dde14c1947335be7b3229f1
M: 8ac8123b45f85b097dde14c1947335be7b3229f1 10.0.0.13:6379slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: 24acc1a09525df3c209e0ea75ab5aa24ac3bf047 10.0.0.12:6379slots: (0 slots) slavereplicates 517e5630bfb0a3273b3cf0dd810f11997f2493dc
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

可以看到添加成功,并且主节点为10.0.0.17。

http://www.sczhlp.com/news/52736/

相关文章:

  • 循环访问lua和c#数组的不同之处
  • 网站建站服务公司电话网站多大够用
  • 东莞企业网站推广免费软件安装网站
  • 宣传册设计公司乐至seo
  • 注重网站建设 把好宣传思想关口深圳新恒基建设公司
  • 网站建设专属名词广西住房城乡建设厅官网站
  • vue前端解决跨域
  • lua中处理时区和夏令时
  • 夏令时 - 在无夏令时的时区,isdst参数会被os.time忽略
  • 广州网站seo推广辽宁专业网页设计免费建站
  • 库尔勒网站建设公司网站刷流量有用吗
  • 哪些公司做DZ网站维护杨和勒流网站建设
  • 濮阳住房建设厅网站网站开发 前端 外包
  • 网站建设对我有什么好处演示 又一个wordpress站点
  • 多肉建设网站前的市场分析网站seo分析工具
  • 哪个网站做电子请帖好房屋装修案例
  • 网站flash背景深圳哪家做网站
  • 深圳网站seo推广做问卷赚钱的网站
  • 网站开发工具的是什么用dede做网站去掉版权
  • 建立网站的优势电脑上无法安装wordpress
  • 石家庄市建设厅网站网站正在建设中 蓝色
  • 网站建设方案公司网站制作论文题目
  • 梵美传媒网站是谁做的广州头条新闻最近一周
  • 纯c语言题解
  • pytest.ini 配置教程
  • Anaconda Python管理工具下载及安装步骤(Windows详细教程,新手一看就会)​
  • 8.4.1 算法描述
  • 个人网站建设的目的关键词优化到首页怎么做到的
  • 深圳网站建设前十名怎么利用花生壳做自己的网站
  • 顺德做网站设计的公司企业咨询管理公司经营范围