redis-cluster 集群搭建详细指南及常见问题集合

只当个搬运工吧

搭建篇:https://www.cnblogs.com/mafly/p/redis_cluster.html  测试能用

常见问题:

1 redis操作key时出现以下错误 (error) MOVED 5798 127.0.0.1:7001

 https://www.fashici.com/tech/356.html

2.ERR] Not all 16384 slots are covered by nodes.

https://blog.csdn.net/vtopqx/article/details/50235891

3.in `call‘: ERR Slot 8579 is already busy (Redis::CommandError)

错误提示是

slot插槽被占用了(这是 搭建集群前时,以前redis的旧数据和配置信息没有清理干净。)

解决方案是

用redis-cli 登录到每个节点执行  flushall  和 cluster reset  就可以了。然后重新执行群集脚本命令:

./redis-trib.rb create --replicas 0 192.168.3.15:6379 192.168.3.15:6380 192.168.3.15:6381 

4.[ERR] Not all 16384 slots are covered by nodes.

  redis群集搭建成功后,6379节点莫名其的宕机,重启了几次,一会儿就又宕机了。在 /my_soft/Redis安装包及jar包/redis-3.0.4/src 目录 下执行check脚本:

./redis-trib.rb check 192.168.3.15:6379
./redis-trib.rb check 192.168.3.15:6380
./redis-trib.rb check 192.168.3.15:6381

  

  1. 其中,6379节点出现了:[ERR] Not all 16384 slots are covered by nodes. 如下图所示:

slot插槽出问题了,修复slot 执行下面的命令:

./redis-trib.rb fix 192.168.3.15:6379

当然了,我们也可以把6380、6381节点都修复一下:

  1. ./redis-trib.rb fix 192.168.3.15:6380

  2.  

    ./redis-trib.rb fix 192.168.3.15:6381

修改完毕后,重启6379节点,

/usr/local/bin/redis-server  /my_soft/my_config/redis3/6379/redis.conf

5.集群操作

移动槽

redis-trib.rb reshard 127.0.0.1:6360

执行集群reshard操作,通过集群中127.0.0.1:6360这一台机器

[OK] All 16384 slots covered.

How many slots do you want to move (from 1 to 16384)? 2731

输入需要移动的槽数量

What is the receiving node ID? 21c93aa709e10f7a9064faa04539b3ecd

输入接收的节点的ID

How many slots do you want to move (from 1 to 16384)? 2731

What is the receiving node ID? 0abf4ca21c93aa709e10f7a9064faa04539b3ecd

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.

Source node #1:0ddb4e430dda8778ac873dd169951c7d71b8235e

Source node #2:done

输入所有被移动的节点ID,确认后输入done

Moving slot 5460 from 0ddb4e430dda8778ac873dd169951c7d71b8235e

Moving slot 13653 from 0ddb4e430dda8778ac873dd169951c7d71b8235e

Do you want to proceed with the proposed reshard plan (yes/no)?

检查后输入yes进行移动分槽

至此,分槽移动完毕。

删除节点

redis-trib.rb del-node 127.0.0.1:6360 ‘f24c0c1ecf629b5413cbca632d389efcad7c8346‘

最后跟着的是这个节点的ID,可在redis-cli终端中使用CLUSTER NODES查看

必要条件,此节点所有分槽均已移除。

添加master节点

redis-trib.rb add-node 127.0.0.1:6360 127.0.0.1:6350

新节点必须是空的,不能包含任何数据。请把之前aof和dump文件删掉,并且若有nodes.conf也需要删除。

add-node  将一个节点添加到集群里面, 第一个是新节点ip:port, 第二个是任意一个已存在节点ip:port

node:新节点没有包含任何数据, 因为它没有包含任何slot。新加入的加点是一个主节点, 当集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中,同时新的主节点因为没有包含任何slot,不参加选举和failover。

添加一个从节点

前三步操作同添加master一样

第四步:redis-cli连接上新节点shell,输入命令:cluster replicate 对应master的node-id

原文地址:https://www.cnblogs.com/zimuzimu/p/9250581.html

时间: 2024-10-07 11:23:13

redis-cluster 集群搭建详细指南及常见问题集合的相关文章

Redis Cluster集群搭建测试

# Redis Clutser # ## 一.Redis Cluster集群 ## 参考资料: http://www.cnblogs.com/lykxqhh/p/5690923.html Redis集群搭建的方式有多种,例如使用zookper等,但从redis3.0之后版本支持redis cluster集群,Redis Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis cluster架构图如下: 其结构特点: 1.所有的redis节点彼此互

Redis Cluster集群搭建与应用

1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接.其redis-cluster架构图如下: 其结构特点 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. 节点的fail是通过集群中超过半数的节点检测失效时才生效. 客户端与redis节点直

Redis 集群搭建详细指南

先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司!为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛,「大」总有大的好.当然,如果你要有能力找一个胸大个子高就更完美了. Redis 集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存.Redis 在3.0版本前只支持单实例模式,虽然支持主从模式.哨兵模式部署来解决单点故障,但是现在互

Redis Cluster集群搭建

1.服务器 192.168.1.201 192.168.1.204 192.168.1.205 192.168.1.206 192.168.1.207 192.168.1.208 因为Redis Cluster如果数据冗余是1的话,至少要3个Master和3个Slave. 2.安装步骤 (1)准备工作 mkdir /usr/local/redis_cluster mkdir /usr/local/redis_cluster (安装所需的文件) cd /usr/local/redis_cluste

redis cluster 集群搭建步骤和注意事项

1.安装Ubuntu ,修改root的密码. sudo passwd  (apt-get update 更新系统) 2.安装 Gcc 和G++  sudo apt-get install build-essential 3.下载 Redis  wget http://download.redis.io/releases/redis-3.2.3.tar.gz 4.解压 tar -xvf redis-3.0.2.tar.gz 5.进入 redis-3.0.2 ,执行make编译源码,进入src目录 

redis cluster 集群搭建(增、删、改、查) :5.0.2

环境简介: 1:centos 7 : 2:redis version 5.0.2 : 3: 安装方式:编译安装 : 4:... 创建集群 节点IP地址 10.42.166.105:6379 10.42.142.202:6379 10.42.11.183:6379 10.42.35.201:6379 10.42.181.22:6379 10.42.225.72:6379 使用公司redis docker 镜像启动6个实例后,开始创建集群:create命令可选replicas参数,replicas表

Redis Cluster 集群搭建部署

1.准备 1>redis-3.0 tar包 2>yum ruby rubygem 提示:①安装rubygem时,有可能需先安装ruby-rdoc,然后执行ruby setup.rb与gem install -l redis              ②安装redis,先解压,进入rdis安装目录,make&make install&make test,make过程中需保证tcl1.85版本以上 2.当前选定6台机器,端口默认.三个master与三个slave(如果在一台机器,修

Redis Cluster集群部署搭建

在Oracle的路上走了许多年,换换感觉,尝试一下新的知识,也是一个不错的感觉.Redis,一个超轻量化的内存数据库,只做一小块数据库功能实现,却非常优秀的一个产品.今天,就分享一下安装Redis集群的过程. 搭建redis集群,建议至少需要准备3台服务器,共搭建6个节点,3个master,3个slave,并且要求3个master节点不能全部跑到同一台服务器上,保证节点安全,3台服务器的配置相同,使用redistest账号搭建,对应的端口是7000/7001/7002端口 我的集群分配如下,每个

Redis Cluster 集群使用(3)

简介 Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用(HA),从3.0版本之后,官方推出了Redis Cluster,它的主要用途是实现数据分片(Data Sharding),不过同样可以实现HA,是官方当前推荐的方案.在Redis Sentinel模式中,每个节点需要保存全量数据,冗余比较多,而在Redis Cluster模式中,每个分片只需要保存一部分的数据,对于内存数据库来说,还是要尽量的减少冗余.在数据量太大的情况下,故障恢复需要较长时间. Redis