0

试图将AWS-Elasticache Redis3.2作为Master并将EC2中的redis实例作为此elasticache的slaveof。我得到这个错误。elasticache -ERR未知命令'PSYNC

Connecting to MASTER masterredis.XXXXXXXXXXXXXXXXXXX.amazonaws.com:6379 
MASTER <-> SLAVE sync started 
Non blocking connect for SYNC fired the event. 
Master replied to PING, replication can continue... 
Partial resynchronization not possible (no cached master) 
Master does not support PSYNC or is in error state (reply: -ERR unknown command 'PSYNC') 
Retrying with SYNC... 
MASTER aborted replication with an error: ERR unknown command 'SYNC' 

....

回答

1

ElastiCache是​​Redis的-作为一种服务从AWS。因此,它的操作员可以自由地禁用某些命令/功能 - 复制到外部实例的能力是这些禁用的功能之一,这就是您遇到的错误的原因。

+0

好的谢谢Itamar,我在想这些问题,但是找不到任何AWS提到的文档。 –

0

正如Itamar所述,Amazon ElastiCache是​​一项托管服务。当使用ElastiCache Redis引擎(它也有memcached选项)时,该接口是100%开源Redis,但Amazon已对底层代码进行了一些更改以针对云进行优化。

ElastiCache中的复制使用主节点和复制节点。这些与Redis Sentinel使用的主人和奴隶相似,但不完全相同。由于ElastiCache始终在AWS EC2上运行,因此它可以使用直接内存传输,使复制速度更快,并且故障转移比需要支持大量可能的基础架构堆栈的OSS分发平滑。但是,您不能将Sentinel节点与ElastiCache节点混合在同一个群集中。 (顺便说一下,我是AWS的托管数据库团队的一员,如果您想了解更多详细信息,请随时联系我,或通过电子邮件发送到stackoverflow上:amazon dot com的briskman)。

有关文档,看http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Replication.html

我们没有明确表明SYNC/PSYNC不支持......但你可以在网上http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/Welcome.html找到ElastiCache API参考。它具有API调用的详细信息,如CreateReplicationGroup等。