elasticache -ERR 未知命令'PSYNC

elasticache -ERR unknown command 'PSYNC

正在尝试将 AWS-Elasticache Redis3.2 作为 Master,并将我 EC2 中的 redis 实例作为此 elasticache 的 slaveof。我收到此错误。

 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'

.....

ElastiCache 是 AWS 的 Redis 即服务。因此,它的操作员可以自由禁用某些 commands/features - 复制到外部实例的能力是这些禁用功能之一,这就是 PSYNC/SYNC 错误的原因你得到了。

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

ElastiCache 中的复制使用主节点和副本节点。这些与 Redis Sentinel 使用的 masters 和 slaves 相似,但不完全相同。由于 ElastiCache 在 AWS EC2 上总是 运行,它可以使用直接内存传输来使复制更快,故障转移比需要支持大量可能的基础设施堆栈的 OSS 分布更顺畅。但是您不能在同一个集群中混合使用 Sentinel 节点和 ElastiCache 节点。

(顺便说一句,我是 AWS 托管数据库团队的一员,所以如果您想了解更多详细信息,请随时联系我们,或者通过电子邮件在 Whosebug 上联系:briskman at amazon dot com)。

有关文档,请参阅 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 等。