在 Memcached 客户端库中添加 Auto Discovery - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Memcached 客户端库中添加 Auto Discovery

Auto Discovery 的配置信息以冗方式存储在每个 Memcached 缓存集群节点中。客户端应用程序可以查询任何缓存节点并获取集群中所有节点的配置信息。

应用程序完成此操作采用的方式取决于缓存引擎版本:

  • 如果缓存引擎版本为 1.4.14 或更高版本,请使用 config 命令。

  • 如果缓存引擎版本 低于 1.4.14,请使用 get AmazonElastiCache:cluster 命令。

这两个命令得到的输出结果是相同的,并且在下面的 输出格式 部分中加以描述。

缓存引擎版本 1.4.14 或更高版本

对于缓存引擎版本 1.4.14 或更高版本,请使用 config 命令。此命令已由集群客户端添加到 Memcached ASCII 和二进制协议中 ElastiCache,并在 ElastiCache 集群客户端中实现。如果您想将 Auto Discovery 与其他客户端库一同使用,那么将需要对此库进行扩展,以支持 config 命令。

注意

以下文档与ASCII协议有关;但是,该config命令同时支持ASCII和二进制。如果要使用二进制协议添加自动发现支持,请参阅 ElastiCache 群集客户端的源代码

语法

config [sub-command] [key]

选项

名称 描述 必填
sub-command

用于与缓存节点互动的子命令。对于 Auto Discovery,这个子命令为 get

Yes
key

存储集群配置的密钥。对于 Auto Discovery,这个密钥的名称为 cluster

Yes

如要获取集群配置信息,请使用下述命令:

config get cluster

缓存引擎版本 1.4.14 或更低版本

如要获取集群配置信息,请使用下述命令:

get AmazonElastiCache:cluster
注意

请勿篡改 “: clusterAmazonElastiCache” 密钥,因为这是集群配置信息所在的地方。如果您确实覆盖了此密钥,则在 ElastiCache 自动正确更新配置信息之前,客户端可能会在短时间内(不超过 15 秒)内被错误配置。

输出格式

无论您使用 config get clusterget AmazonElastiCache:cluster,回复都由两行组成:

  • 配置信息的版本号。每当在缓存集群中添加一个节点或者从缓存集群中移除一个节点时,版本号都会增加一个数。

  • 一份缓存节点列表。列表中的各个节点都由 用户名|IP 地址|端口 组加以表示,并且每个节点都由一个空格加以限定。

回车和换行字符 (CR + LF) 出现在每行末尾处。数据行末尾包含一个换行字符 (LF),其中添加了 CR + LF。配置版本行以 LF 终止,无需 CR。

包含三个节点的缓存集群的表示方式如下:

configversion\n hostname|ip-address|port hostname|ip-address|port hostname|ip-address|port\n\r\n

每个节点都显示有CNAME和私有 IP 地址。CNAME将始终存在;如果私有 IP 地址不可用,则不会显示该地址;但是,管道字符 “|” 仍会被打印。

下面介绍了一个示例,即当您询问配置信息时返回的有效负载:

CONFIG cluster 0 136\r\n 12\n myCluster.pc4ldq.0001.use1.cache.amazonaws.com|10.82.235.120|11211 myCluster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n END\r\n
注意
  • 第二行表示迄今为止已修改配置信息 12 次。

  • 在第三行中,节点列表按照主机名的字母顺序进行排序。这种排序可能与您目前在客户端应用程序中采用的顺序不同。