Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用RDB文件启动Redis群集_Redis_Amazon Elasticache_Redis Cluster - Fatal编程技术网

使用RDB文件启动Redis群集

使用RDB文件启动Redis群集,redis,amazon-elasticache,redis-cluster,Redis,Amazon Elasticache,Redis Cluster,我正在尝试使用从单个实例Redis服务器获取的RDB文件创建Redis集群。以下是我尝试过的: #! /usr/bin/env bash for i in 6000 6001 6002 6003 do redis-server --port $i --cluster-config-file "node-$i.cconf" --cluster-enabled yes --dir "$(pwd)" --dbfilename dump.rdb & done 该脚本启动4个支持群集的Red

我正在尝试使用从单个实例Redis服务器获取的RDB文件创建Redis集群。以下是我尝试过的:

#! /usr/bin/env bash
for i in 6000 6001 6002 6003
do
  redis-server --port $i --cluster-config-file "node-$i.cconf" --cluster-enabled yes --dir "$(pwd)" --dbfilename dump.rdb &
done
该脚本启动4个支持群集的Redis进程。它还使用转储文件初始化每个节点

然后我运行
redis trib.rb
,以便4个节点可以找到彼此:

redis-trib.rb create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003
我得到以下错误:

>>> Creating cluster
[ERR] Node 127.0.0.1:6060 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
我还尝试了一种变体,其中只有第一个节点/进程使用RDB文件初始化,其他节点/进程为空。我可以将3个空节点连接到一个集群中,但不能连接预填充数据的集群

将预先存在的RDB文件导入Redis集群的正确方法是什么

如果这是一个“”,这就是我这样做的原因:

我正在进行从单实例Redis服务器到Elasticache Redis群集(启用群集模式)的迁移。如果将RDB文件上载到S3,Elasticache可以在集群启动时轻松导入RDB文件。但是Elasticache集群需要很长时间才能启动。为了在测试迁移代码时减少反馈循环,我希望能够在本地启动集群


我也尝试过使用该实用程序,但它似乎没有任何选项可以用数据预填充集群。

我相信您正在寻找这个@是的!真管用!如果你回答的话,我可以给你赏金。谢谢