操作系统:红帽 Linux8
问题描述
执行 redis-cli --cluster create ... ... ... ... ... ... --cluster-replicas 1
创建失败,输出以下:
[ERR] Node 端口:地址 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
[错误] 节点端口:地址不为空。要么该节点已经知道其他节点(请使用CLUSTER NODES检查),要么在数据库0中包含一些键值。
问题排查
根据报错要求检查,内容如下:
192.168.88.210:6379> CLUSTER NODES
bddd0537ab85899b29260471332fb2b1e6c43e8b 192.168.88.210:6379@16379 myself,master - 0 0 6 connected 0-5460
c635c14ed6ec5d76555d0c5d3f41b1472bf67498 192.168.88.211:6379@16379 master - 0 1757494346883 2 connected 5461-10922
如上所示,以当时状态看不出什么问题。但根据网络文章描述,这是不正常的。 Redis 集群至少需要 3个 master 节点。显然,给予的 6台 redis 主机在分配上存在问题。
# 添加 192.168.88.212:6379 至 redis1 上
[root@redis1 ~]# redis-cli --cluster add-node 192.168.88.212:6379 192.168.88.210:6379
但添加后出现。
[ERR] Node 192.168.88.210:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
因此,计划重新创建集群。
# 为管理方便,使用 ansible 进行操作
[root@ansible ~]# ansible redis -m shell -a "systemctl stop redis"
[root@ansible ~]# ansible redis -m shell -a "rm -f /var/lib/redis/nodes*" # 移除集群关系文件
[root@ansible ~]# ansible redis -m shell -a "systemctl restart redis"
在 redis 上创建集群:
[root@redis1 ~]# redis-cli --cluster create \
> 192.168.88.210:6379 \
> 192.168.88.211:6379 \
> 192.168.88.212:6379 \
> 192.168.88.213:6379 \
> 192.168.88.214:6379 \
> 192.168.88.215:6379 \
> --cluster-replicas 1
即解决问题
检查即显示 6 台 redis,即下所示:
[root@redis1 ~]# redis-cli -h 192.168.88.210 -p 6379
192.168.88.210:6379> CLUSTER NODES
3f0ab8cfd9a044566c1bef38016aa5d23f1ff814 192.168.88.211:6379@16379 master - 0 1757497217000 2 connected 5461-10922
cf21a2bc0bbba98772c5318709d810970cf6effd 192.168.88.215:6379@16379 slave 9774b2c16ae58a36f542d3ca4928067fd1aa7a85 0 1757497216263 6 connected
9774b2c16ae58a36f542d3ca4928067fd1aa7a85 192.168.88.212:6379@16379 master - 0 1757497219488 3 connected 10923-16383
9b64ff2b60de00b403b701127a6ded62333510be 192.168.88.214:6379@16379 slave 3f0ab8cfd9a044566c1bef38016aa5d23f1ff814 0 1757497218406 5 connected
627975507b6f9b11dc07a8131b4ca09d0f39e742 192.168.88.210:6379@16379 myself,master - 0 1757497218000 1 connected 0-5460
ca48717ad1ca821adc6886fe94f475d517da8cbd 192.168.88.213:6379@16379 slave 627975507b6f9b11dc07a8131b4ca09d0f39e742 0 1757497218000 4 connected