Redis集群创建

Redis集群创建,redis,Redis,是否可以创建一个包含两个节点的redis集群,一个作为主节点,另一个作为从节点 如果尝试使用2个节点(一个作为主节点,另一个作为从节点),则会出现以下错误 Redis群集不适合您的用例 对于您的用例,您需要配置一台服务器(主服务器),然后配置第二台服务器并添加“slaveof”指令-将其指向主服务器。如何处理故障转移取决于您的场景,但我建议使用redis sentinel 有关更详细的演练,请参见“是”。至少3个主节点的要求由ruby脚本设置,但不是集群中的硬限制 您需要做的第一件事是发送一个带

是否可以创建一个包含两个节点的redis集群,一个作为主节点,另一个作为从节点

如果尝试使用2个节点(一个作为主节点,另一个作为从节点),则会出现以下错误


Redis群集不适合您的用例

对于您的用例,您需要配置一台服务器(主服务器),然后配置第二台服务器并添加“slaveof”指令-将其指向主服务器。如何处理故障转移取决于您的场景,但我建议使用redis sentinel


有关更详细的演练,请参见“是”。至少3个主节点的要求由ruby脚本设置,但不是集群中的硬限制

您需要做的第一件事是发送一个带有16385个参数的
cluster
命令,如

cluster addslots 0 1 2 3 ... 16384
到集群。由于redis cli中的参数太多,无法手动键入,因此我建议编写一个程序来执行此操作,在该程序中,打开连接到redis节点的TCP套接字,将上一个命令转换为redis命令字符串,并将其写入套接字

发送命令几秒钟后,单节点群集将联机。然后使用redis cli连接到另一个节点,键入以下命令使其成为从属节点

cluster meet MASTER_HOST MASTER_PORT
cluster replicate MASTER_ID
其中,
MASTER\u HOST:MASTER\u PORT
是前一个节点的地址,
MASTER\u ID
是该节点的ID,您可以通过
集群节点
命令检索该节点

为了方便起见,我为这类redis集群管理编写了一个python工具,您可以使用

pip install redis-trib

有关更多详细信息,请转到

否,无法创建具有1个主节点的redis群集,因为建议设置redis群集至少需要3个主节点

“redis-trib.rb create”命令至少需要3个节点。
这样就可以创建一个主redis集群,一个从redis集群

使用redis-trib $redis server 5001/redis.conf
$redis-trib.rb fix 127.0.0.1:5001
这么多信息…

$redis server 5002/redis.conf
$redis-trib.rb添加节点--从127.0.0.1:5002 127.0.0.1:5001

>>> Adding node 127.0.0.1:5002 to cluster 127.0.0.1:5001<br>
Connecting to node 127.0.0.1:5001: OK<br>
>>> Performing Cluster Check (using node 127.0.0.1:5001)<br>
M: 015bec64d631990b83ad63736d906cda257a762c 127.0.0.1:5001<br>
   slots:0-16383 (16384 slots) master<br>
   0 additional replica(s)<br>
[OK] All nodes agree about slots configuration.<br>
>>> Check for open slots...<br>
>>> Check slots coverage...<br>
[OK] All 16384 slots covered.<br>
Automatically selected master 127.0.0.1:5001<br>
Connecting to node 127.0.0.1:5002: OK<br>
>>> Send CLUSTER MEET to node 127.0.0.1:5002 to make it join the cluster.<br>
Waiting for the cluster to join.<br>
>>> Configure node as replica of 127.0.0.1:5001.<br>
[OK] New node added correctly.
>>将节点127.0.0.1:5002添加到集群127.0.0.1:5001
连接到节点127.0.0.1:5001:OK
>>>执行群集检查(使用节点127.0.0.1:5001)
M:015bec64d631990b83ad63736d906cda257a762c 127.0.0.1:5001
插槽:0-16383(16384个插槽)主插槽
0个附加副本
[确定]所有节点都同意插槽配置。
>>>检查打开的插槽…
>>>检查插槽覆盖率…
[确定]覆盖所有16384个插槽。
自动选择的主机127.0.0.1:5001
连接到节点127.0.0.1:5002:OK
>>>将群集会议发送到节点127.0.0.1:5002,使其加入群集。
正在等待群集加入。
>>>将节点配置为127.0.0.1:5001的副本。
[确定]已正确添加新节点。

使用集群命令 $redis server 5001/redis.conf

使用Ruby:addslots
$echo'(0..16383)。每个{x |放置“cluster addslots”+x.to}| ruby | redis cli-c-p 5001>/dev/null

$redis server 5002/redis.conf
$redis cli-c-p 5002
127.0.0.1:5002>集群满足127.0.0.1 5001
好的
127.0.0.1:5002>群集复制7c38d2e5e76fc4857fe238e34b4096fc9c9f12a5 5001的节点id

好的,我不知道你在问什么。Redis Cluster仍处于测试阶段。Redis复制已经存在多年了,在2.8.4中进行了大量更新,并进行了各种改进。对于1个主服务器和1个从服务器,您只需要复制。只需在slave中执行“slave of”,即可完成设置。有关Redis群集设置的最佳教程:
>>> Adding node 127.0.0.1:5002 to cluster 127.0.0.1:5001<br>
Connecting to node 127.0.0.1:5001: OK<br>
>>> Performing Cluster Check (using node 127.0.0.1:5001)<br>
M: 015bec64d631990b83ad63736d906cda257a762c 127.0.0.1:5001<br>
   slots:0-16383 (16384 slots) master<br>
   0 additional replica(s)<br>
[OK] All nodes agree about slots configuration.<br>
>>> Check for open slots...<br>
>>> Check slots coverage...<br>
[OK] All 16384 slots covered.<br>
Automatically selected master 127.0.0.1:5001<br>
Connecting to node 127.0.0.1:5002: OK<br>
>>> Send CLUSTER MEET to node 127.0.0.1:5002 to make it join the cluster.<br>
Waiting for the cluster to join.<br>
>>> Configure node as replica of 127.0.0.1:5001.<br>
[OK] New node added correctly.