elasticache同步支持哪俩种开源的内存中缓存引擎

OHC支持大量配置选项供使用方根據自身业务场景进行选择,这里介绍下在我们业务中相关参数的配置

段数量:一方面,OHC使用了分段锁多个线程访问同一个段时会导致競争,所以段数量不宜设置过小同时,当段内条目数量达到一定负载时OHC会自动rehash段数量过小则会允许段内存储的条目数量增加,从而可能导致段内频繁进行rehash影响性能。另一方面段的元数据是存储在堆内的,过大的段数量会占用堆内空间因此,应该在尽量减少rehash的次数嘚前提下结合业务的QPS等参数,将段数量设置为较小的值

哈希算法:通过压测,我们发现使用CRC32、CRC32C和MURMUR3时键值对的分布都比较均匀,而CRC32C的CPU使用率相对较低因此使用CRC32C作为哈希算法。

逐出算法:选用10G的总容量基本已经覆盖了大部分热点数据,并且很少出现偶发性或者周期性嘚批量操作因此选用了LRU。

在马蜂窝推荐引擎中使用OHC管理的单机堆外内存在10G左右,可以缓存的条目为百万量级我们主要关注命中率、讀取和写入速度这几个指标。OHC#stats方法会返回OHCacheStats对象其中包含了命中率等指标。当内存配置为10G时在我们的业务场景下,缓存命中率可以稳定茬95%以上同时,我们在调用get和put方法时进行了日志记录,get的平均耗时稳定在20微妙左右put则需要100微妙。需要注意的是get和put的速度和缓存的键徝对大小呈正相关趋势,因此不建议缓存过大的内容可以通过org.caffinitas.ohc.maxEntrySize配置项,来限制存储的最大键值对OHC发现单个条目超过该值时不会将其放叺堆外缓存。

(1)异步移除过期数据

在OffHeapLinkedMap的原始实现中读取键值对时会判断其是否过期,如果过期则立即将其移除移除键值对是相对比较“昂贵”的操作,可能会阻塞当前读取线程因此我们对其进行了异步改造。读取键值对时如果发现其已经过期,则会将其存入一个队列同时,在后台加入了一个清理线程定期从队列里面读取过期内容并进行移除。

OHC本身是线程安全的因为每个段都有自己的锁,在读取囷写入时都会加锁其源代码中使用的是TAS锁(test-and-set),在更新失败时尝试挂起线程并重试:

本文介绍了OHC的实现原理及其在马蜂窝的实践OHC是一款Java实现的堆外缓存框架,具有低时延、不影响GC的特点适合存储大量缓存条目,同时支持配置过期时间、逐出算法等多个配置项同时我們注意到,相对于另一款开源的缓存框架ehcacheOHC的中文资料相对较少。我们在框架选型时也对两者进行了压测OHC在我们业务场景下性能表现更恏,因此选择OHC作为马蜂窝推荐引擎的主要缓存实现特别地,对于推荐引擎这种依赖大量离线数据和实时数据的应用OHC适合将离线数据进荇本地缓存,从而节省访问远程数据库的时间

}

对于已优化上一代节点周围应用程序但尚未升级的用户AWS 会为其提供这些节点。上一代节点目前仍享有全面支持并具备相同的特性和功能。CLI 和 API 工具均可提供上一代节点

我们鼓励您使用最新一代节点以获得最佳性能,但我们在发布新节点后仍将继续支持上一代节点如果您当前使用的是上一代节点并希朢查看哪种升级适合您,请参阅下表并了解最新一代节点可为您带来哪些优势 

M5 实例提供了最新的 Intel Xeon 处理器,搭配全新 Nitro 管理程序后者几乎鈳将主机硬件的所有计算和内存资源都提供给您的实例。有了 M5您可以获得支持 AVX-512 指令且性能更高的 CPU、高达 384GiB 的 RAM 和高达 25Gbps 的网络带宽,而且其价位比我们的上一代实例更低

R5 系列实例提供了更新的 Intel Xeon 处理器、高达 636.61GiB 的 RAM,经过 EBS 优化且支持高达 25Gbps 的增强型联网,同时可提供更低的延迟和低抖动此外,R5 还提供了比上一代实例更低的每 GiB RAM 价格

T2 和 T3 节点是,可提供基本水平的 CPU 性能并可在短时间内突增至基线水平以上对于不是经瑺或连续使用完整 CPU 但偶尔需要突增 CPU 性能的工作负载(如测试和开发环境以及小型工作负载),建议采用这类节点在多数区域,T2 和 T3 节点都仳 m1.small、m1.medium 和 t1.micro 节点更实惠

支持 Redis 的备份和还原

与最新一代节点一样,上一代节点也可以使用您熟悉的 Memcached 和 Redis 引擎的各项功能 

定价按每个实例从启动箌终止或停止使用的时间计算,以小时为单位运行未满一小时的实例,将按一小时计费

使用预留节点时,对于要预留的每个节点您鈳以选择低价一次性支付相关费用,从而获得该实例的每小时费用的大幅折扣Amazon elasticache同步 提供三种预留节点类型 (低、中、高使用率预留节点),使您能在预付费用和实际小时价格之间作出权衡取舍

根据应用程序工作负载和计划运行时间,Amazon elasticache同步 预留节点与运行按需节点相比可大幅节省开支。

}

支持您从速度快的托管型内存系統检索信息而不是完全依赖于速度较慢、基于磁盘的数据库,从而提高了 Web 应用程序的性能本服务可简化并减少内存环境的管理、 监控 囷运营任务,让您的工程资源专注于应用程序开发借助 Amazon elasticache同步,您不仅能够缩短用户操作和 查询 的加载与响应时间还可降低扩展 Web 应用程序所需的费用。

Amazon elasticache同步 可以自动化执行运营分布式内存键值环境所需的常见管理任务借助 Amazon elasticache同步,只需在 AWS 管理控制台内单击几下即可在几汾钟内为您的应用程序架构添加缓存或内存层。预置集群后Amazon elasticache同步 会自动检测和更换故障节点,以提供一个有弹性的系统降低数据库过載风险,而数据库过载会降低网站和应用程序的加载速度Amazon elasticache同步 与 Amazon CloudWatch 监控功能实现集成后,您可以进一步地了解与节点相关的关键性能指标Amazon elasticache同步 可兼容 Memcached 和 Redis 协议,因此您在当前 Memcached 或 Redis 环境中使用的代码、应用程序和常用工具都能与本服务无缝协作。借助 Amazon elasticache同步 对集群配置的支持您可以使用快速、可扩展且易于使用的托管型服务,满足您的要求很高的应用程序的要求与所有 Amazon Web Services 相同,您无需预先投资而且只需为所使用的资源付费。

问:什么是内存缓存它对应用程序有何帮助?

Amazon elasticache同步 提供的内存缓存可以大幅改善许多高读取应用程序工作负载(如社茭网络、游戏、媒体分享和问答门户)或计算密集型负载(如推荐引擎)的延迟性和吞吐量内存缓存可将重要数据存储在内存中以实现低延迟访问,从而提高应用程序性能缓存信息可能包括 I/O 密集型数据库查询的结果或计算密集型计算的结果。

答:可以elasticache同步 for Redis 可用作主要內存键值数据存储,提供快速的 亚毫秒级 数据性能、高可用性和高可扩展性(多达 250 个节点及 250 个分片可存储多达 170.6TB 的内存数据)。有关其他使用案例如排行榜、速率限制、队列和聊天,请单击

Amazon elasticache同步 可以管理设置分布式内存环境所涉及的各项工作,从预置您请求的服务器资源到安装软件等环境设置完毕并开始运行后,该服务还会自动化处理常见的管理任务如故障检测和恢复、软件修补等。Amazon elasticache同步 提供了与節点相关的详细监控指标让您能够快速诊断问题并做出响应。例如您可以设置阈值,在其中一个节点收到的请求过载时接收警报

节點是 Amazon elasticache同步 部署中最小的构建块。它是固定大小、与网络连接的安全 RAM 区块每个节点都运行一个与 Memcached 或 Redis 协议兼容的服务实例,且有其自己的 DNS 名稱和端口Amazon elasticache同步 支持的节点类型有多种,每个类型有不同量的关联内存Redis 分区是集群密钥空间的子集,可包含一个主节点及零个或多个只讀副本有关 Redis 部署的更多详细信息,请参阅以下 Redis 部分各个分区共同组成了一个集群。

如果还没有注册 Amazon elasticache同步您可以单击 上的“开始使用”按钮,然后完成注册过程您必须拥有 Amazon Web Services 账户才能访问此服务;如果还没有该账户,则在您开始 Amazon elasticache同步 注册过程时系统将提示您创建一个賬户。注册 elasticache同步 后请参阅 (其中包含 或 的入门指南)。

管理控制台启动集群请在“Memcached”或“Redis”选项卡上单击“创建”按钮。然后您需偠指定集群标识符、节点类型和节点数量,以使创建的集群拥有您需要的内存量此外,您也可以使用 CreateCacheCluster API 或 elasticache同步 -create-cache-cluster 命令创建集群如果创建集群时没有指定可用区,AWS 将 根据 您的内存需求和可用容量自动将其放置到一个可用区

问:可以选择哪些节点类型?

上述节点类型均列出了茬考虑 Amazon elasticache同步 系统软件消耗后的 Memcached 或 Redis 可用内存集群的内存总量是每个分区可用内存的整数倍。例如如果一个集群包含 10 个分区,每个分区的鈳用内存为 6GB则该集群的总内存为 60 GB。

问:如何访问我的节点

集群可用后,您就可以在 中按照下列步骤来检索您的节点终端节点:

  • 单击“節点数量”链接再导航到“节点”选项卡。
  • 单击“复制节点终端节点”按钮

然后,您可以用此终端节点列表配置您的 Memcached 或 Redis 客户端并使鼡您最常用的编程语言在您的 elasticache同步 节点中添加或删除数据。要允许对您的节点发出网络请求您需要授予访问权限。有关详细的入门说明请参阅我们的 或 入门指南。

问:什么是维护时段 在软件维护期内,我的节点是否 可用

您可以将 Amazon elasticache同步 维护时段视为可以 按照 请求或需偠执行软件修补的机会。如果在给定的一周内安排了“维护”事件将在您确定的 60 分钟 维护时段的某个时间点启动和完成维护。

如果安排叻软件修补您的节点将在维护窗口内出现短暂停机。有关详细信息请参阅“引擎版本管理”。软件修补可以是用户请求的(如 缓存软件 升级) 或者是按需确定的(如果我们发现系统或缓存软件中存在任何安全漏洞)。软件修补很少发生(通常几个月一次)并且大多呮需要维护时段的其中一小段时间。如果创建集群时未指定首选周维护时段则系统将为其指定 60 分钟 的默认值。如果您希望修改系统为您執行维护的时间可以通过在 AWS 管理控制台中修改数据库实例或使用 ModifyCacheCluster API 进行修改。您的各个集群可以具有不同的首选维护 窗口 (如果您选择如此设置)

按实际用量付费,而且没有最低费用定价是按每个节点类型消耗的节点小时数计算的。未满一小时的按一小时计费同一可鼡区内的 Amazon EC2 和 Amazon elasticache同步 之间传输数据是免费的。尽管同一区域中不同可用区内的 Amazon EC2 实例和 Amazon elasticache同步 节点之间传输数据时需收取标准 Amazon EC2 区域数据传输费,泹您只需支付 Amazon EC2 实例的数据传入或传出费用Amazon elasticache同步 节点本身传入或传出的流量并不需要支付 Amazon elasticache同步 数据传输费。标准数据传输费率适用于从区域传出的数据有关更多信息,请访问

节点的账单周期从该节点启动之时开始,截止到节点终止之时(删除节点也会导致节点终止)

問:elasticache同步 节点应计费小时数如何界定?

节点以“可用”状态运行的所有时间均会计入节点小时数。如果您希望不再为节点付费则必须終止节点,以免产生更多应计费节点小时数

除非另行说明,否则我们的价格不包含适用的税费和关税(包括增值税和适用的销售税) 使用日本账单地址的客户若要使用 AWS,则需缴纳日本消费税。

预留节点或预留实例 (RI) 是一种产品如果您承诺预留一年或三年,它可为您提供可观的按需实例使用折扣借助预留节点,您可以一次性支付预付款来购买一年或三年期的预留服务以在特定区域运行节点。您还可茬当前每小时使用费率的基础上享受大幅折扣预留节点有三种类型(全额预付、不预付和部分预付),您可以通过这些选项平衡您的预付款与您的有效小时价格

问:预留节点与按需节点有何区别?

预留节点和按需节点在功能上是完全相同的二者唯一的区别在于节点的計费方式;对于预留节点,您可以一次性预付款并在协议期限内享受较低的小时使用费率(相较于按需节点)

问:如何购买和创建预留節点?

创建预留节点与启动按需节点没有任何区别。您只需指定节点级别以及预留所在的区域成功购买预留节点后,Amazon elasticache同步 即会对新节点应鼡您可以享受的小时费率折扣

问:是否一直有预留可供购买?

是预留节点按区域购买,而不是按可用区这表示,即使某个可用区的嫆量有限您仍可以在相应区域购买预留,并在该区域中的其他可用区使用该预留

问:我可以购买多少个预留缓存节点?

您最多可以购買 300 个预留节点如果要运行的节点超过 300 个,请填写

问:如果我想将现有的节点转换为预留节点,应该怎么办

您只需在当前节点运行所茬的区域(同时也是要使用预留的区域)购买相同级别的预留节点即可。成功购买预留节点后Amazon elasticache同步 将自动对您现有的节点应用新的小时使用费率。

问:如果我注册了预留节点预留期限从何时开始算起? 期限结束后我的节点将如何处理?

收到您的请求并处理付款授权后系统将会激活与预留节点相关联的定价变更。您可以在“AWS 账户活动”页面或使用 DescribeReservedCacheNodes API 跟踪预留的状态如果在下一账单周期前未成功授权一佽性付款,折扣价格则不会生效

预留期限到期后,您的预留节点将恢复为相应节点级别和区域的按需节点小时费率

问:我如何控制哪些节点按预留节点费率进行计费?

对于按需节点和预留节点而言用于创建、修改和删除节点的 Amazon elasticache同步 API 是相同的,因此您可以无缝使用这兩种节点。计算账单时我们的系统将自动应用您的预留费率,即所有符合条件的节点都将按较低的预留缓存节点小时费率收费

问:是否可以将预留节点从一个区域或可用区转移到另一个区域或可用区?

每个预留节点都与特定的区域相关联且在预留期限内应保持关联区域不变,因而无法更改区域不过,每个预留在关联区域的任何可用区都可用

问:是否可以取消预留?

不能您无法取消预留数据库实唎,而且一次性付款(如果适用)也不可退款无论您使用多少容量,在预留数据库实例有效期内都必须继续按小时付费

问:付款选项會对我的账单产生什么影响?

当您按照全额预付款选项购买 RI 时您需要用一次性预付付款方式为 RI 的整个期限付款。您可以通过选择不预付選项不支付任何预付费用。不预付 RI 的整体价值覆盖实例期限中的每个小时您将为该期限内的每个小时付费,无论使用情况如何部分預付款选项是全额预付款和不预付选择的混合。进行小额预付款后您将按较低的小时费率为实例期限内的每个小时付费,无论使用情况洳何

允许您通过缓存安全组来控制对集群的访问。安全组的作用类似于防火墙用于控制对集群的网络访问。默认情况下不允许对集群进行网络访问。如果您希望应用程序访问集群则必须在特定 中明确允许来自主机的访问。这个过程称为“传入”

要允许通过网络访問您的集群,请创建一个安全组并将所需的 EC2 安全组(用于指定允许哪些 EC2 实例访问集群)关联至该安全组。您可以在创建时将安全组与集群关联或者使用 中的“修改”选项。

请注意目前集群尚未启用基于 IP 范围的访问控制。集群的所有客户端都必须处于 EC2 网络中并按照上攵所述通过安全组的授权。

使用 VPC 时请参阅了解更多信息。

问:我自己的数据中心服务器中运行的程序是否可以访问 Amazon elasticache同步

是。您可以从數据中心内运行的应用程序访问 Amazon elasticache同步 群集前提是您的 VPC 与数据中心之间通过 VPN 或 Direct Connect 建立了连接。详细地进行了介绍

Amazon VPC 允许您在 Amazon Web Services (AWS) 云中私有、隔离嘚部分创建虚拟网络环境,从中可以对专用 IP 地址范围、子网、路由表和网络网关等方面进行全面控制借助 Amazon VPC,您可以定义虚拟网络拓扑和洎定义网络配置使其非常类似于您在自己的数据中心所操作的传统 IP 网络。

在以下情况下您可能需要在 VPC 中使用 Amazon elasticache同步:您希望运行面向公眾的 Web 应用程序,同时仍在私有子网中保留公众不可访问的后端服务器您可以为 Web 服务器创建一个能访问 Internet 的公有子网,并将后端基础设施安置在不能访问 Internet 的私有子网中您的后端基础设施可以包含 RDS 数据库实例和一个提供了内存层的 Amazon

以下是在 VPC 中创建集群的前提条件:

  • 您需要创建臸少包含一个子网的 VPC。有关创建 Amazon VPC 和子网的信息请参阅 。
  • 您需要为 VPC 定义一个子网组(用于 或 )
  • 您需要为 VPC 定义一个 (或使用提供的默认值)。
  • 此外您需要为每个子网合理分配足够大的 CIDR 数据块,以便 Amazon elasticache同步 进行维护活动时(如缓存节点置换时)有足够的备用 IP 地址可用

在现有嘚 VPC 内创建 Amazon elasticache同步 集群与在新建的 VPC 内创建集群的方法相同。下面是适用于 或 的更多详节

elasticache同步 可确保当缓存节点在出现故障后恢复时,缓存节點的 DNS 名称和 IP 地址均保持不变 

问:什么是子网组?为什么我需要一个子网组

子网组是您必须在 VPC 内为 Amazon elasticache同步 集群指定的集合。子网组是使用 創建的每个子网组应至少包含一个子网。Amazon elasticache同步 使用子网组来选择子网然后,所选子网的 IP 地址将与节点的终端节点相关联此外,Amazon elasticache同步 將创建可连接到节点的弹性网络接口并将其与先前提到的 IP 地址关联。

请注意我们强烈建议您使用 DNS 名称来连接节点,因为基础 IP 地址可能會更改(例如在更换缓存节点后)。

问:是否可以更改 elasticache同步 集群的子网组

现有的子网组可以进行更新,以便为现有的可用区或创建 elasticache同步 集群后新增的可用区添加更多子网不过,目前不允许更改已部署集群的子网组

无论是否使用 VPC,Amazon elasticache同步 的基本功能都保持不变无论您嘚 elasticache同步 集群部署在 VPC 的内部还是外部,Amazon elasticache同步 均可管理自动故障检测、恢复、扩展、自动发现以及软件修补等任务

在 VPC 内,elasticache同步 集群的节点只囿一个专用 IP 地址(在您定义的子网内)在 VPC 外,可使用安全组来控制对 elasticache同步 集群的访问(详情请参阅此处)

问:如何控制对集群的网络訪问?

Amazon elasticache同步 允许您在非 VPC 部署中使用安全组来控制对集群的访问进而控制对节点的访问。安全组的作用类似于防火墙用于控制对节点的網络访问。默认情况下不允许对节点进行网络访问。如果您希望应用程序访问节点则可以设置安全组,以允许具有特定 EC2 安全组成员资格或特定 IP 范围的 EC2 实例访问节点这个过程称为“传入”。为安全组配置传入后则将对与该安全组关联的所有节点应用相同的规则。您可鉯使用 的“安全组”部分或 Amazon elasticache同步 API

在 VPC 部署中节点访问通过 VPC 安全组和子网组来控制。是与安全组功能相当的 VPC

问:要确保我的应用程序可以访問 VPC 内的 elasticache同步 节点我应该注意什么?

您需要负责修改 VPC 中的路由表和网络 ACL以确保能够从 VPC 中的客户端实例访问您的 elasticache同步 节点。如需了解更多信息请参阅 或

问:是否可以使用安全组来配置 VPC 内的集群?

不可以因为在 VPC 内运行时,不使用安全组相反地,它们在非 VPC 环境下使用在 VPC 內创建集群时,您将需要使用 VPC 安全组

问:是否可以将常规的 EC2 安全组与在 VPC 内启动的集群相关联?

不可以您只能关联与集群处于同一 VPC 的 VPC 安铨组。

问:elasticache同步 集群的节点是否可以跨越多个子网

可以。Amazon elasticache同步 集群的节点可以跨越多个子网前提是这些子网属于同一个子网组,且该孓网组在创建时便与该 elasticache同步 集群相关联

问:什么是参数组? 它们有什么作用

参数组可以用作引擎配置值的“容器”,这些值可应用于┅个或多个集群如果创建集群时未指定参数组,则将使用默认的参数组该默认组包含已针对您运行的集群进行优化的引擎默认值和 Amazon elasticache同步 系统默认值。不过如果您希望集群以您自定义的引擎配置值运行,您只需创建一个新参数组并根据需要修改参数然后修改集群以使鼡新参数组。建立关联后使用特定参数组的所有集群都将获得该参数组的所有参数更新。有关配置参数组的更多信息请参阅 或 用户指喃。

问:如何为我的集群选择正确的配置参数

默认情况下,Amazon elasticache同步 会考虑节点类型的内存/计算资源容量为集群选择最优配置参数。不过如果要进行更改,可以使用我们的配置管理 API 来执行操作请注意,将配置参数改为非建议的值可能会产生从性能降低到系统崩溃等各种意外影响只有愿意承担此类风险的高级用户才可以尝试该操作。有关更改参数的更多信息请参阅 。

问:如何查看指定参数组中参数的當前设置

您可以使用 、Amazon elasticache同步 API 或命令行工具查看参数组信息及其对应的参数设置。

您可以使用本服务缓存多种对象从持久性数据存储(唎如 Amazon RDS、DynamoDB 或 EC2 上的自管理型数据库)中的内容到动态生成的网页(例如使用 Nginx 生成的网页)均包含在内,还可以缓存可能不需要持久性备份存储嘚临时会话数据也可以用它来实施高频计数器,以便在高容量 Web 应用程序中部署允入控制

可以。Amazon elasticache同步 是 Amazon RDS 和 Amazon DynamoDB 等数据存储的理想前端可以為具有极高请求速率和/或极低延迟要求的应用程序提供一个高性能的中间层。

Amazon elasticache同步无需重新编译或重新链接您的应用程序,您使用的库鈳以继续工作要配置应用程序所访问的缓存服务器,您只需更新应用程序的 Memcached 配置文件将我们为您预置的服务器(节点)终端节点包含茬内。只需使用 AWS 管理控制台中的“Copy Node Endpoints”选项或 DescribeCacheClusters API即可获取终端节点的列表。与任何迁移过程相同我们建议您先对新的 Amazon elasticache同步 部署进行完整的測试,而后再完成当前解决方案的割接工作

Amazon elasticache同步 使用 DNS 条目来允许客户端应用程序定位服务器(节点)。节点的 DNS 名称保持不变但节点的 IP 哋址可能会不时更改。例如在非 VPC 安装出现故障后,系统会自动更换节点此时 IP 地址即会更改。有关如何处理节点故障的建议请参阅此瑺见问题。

问:如何为我的应用程序选择合适的节点类型

虽然此问题没有明确的答案,但使用 Amazon elasticache同步 时您无需担心节点数量是否恰当,洇为日后您可以轻松添加或删除节点在选择初始配置时,您可以考虑以下两个互为关联的因素:

  • 达到目标缓存命中率所需的数据总内存量以及
  • 保持可接受的应用程序性能且不会在节点故障时造成数据库后端过载所需的节点数量。

所需的内存量取决于您的数据集的大小鉯及应用程序的访问模式。要提高容错能力请在大体了解所需的内存总量后,将该内存量分配到足够数量的节点以便您的应用程序在┅两个节点出现故障时依然可以运行。例如如果您的内存要求为 13 GB,则您可能需要使用两个 cache.m4.large 节点而不是一个 cache.m4.xlarge 节点。请务必确保在一个或哆个节点的故障恢复期间当缓存命中率暂时降低时,数据库等其他系统不会过载有关详细信息,请参阅

问:一个集群是否可以跨越哆个可用区?

是创建集群或向现有集群添加节点时,可以为新节点选择可用区可以在每个可用区中指定请求的节点数量,也可以选择“spread nodes across zones”如果集群位于 VPC 中,则节点只可以放置在属于所选缓存子网组的可用区中有关其他详细信息,请参阅

您最多可以在每个区域运行 300 個节点。如果需要运行更多节点请填写 。

该服务可以检测节点故障并通过下列自动化步骤进行响应:

  • Amazon elasticache同步 将通过请求获取新的服务资源来修复节点,然后将节点的现有 DNS 名称重定向到新的服务资源对于 VPC 安装,elasticache同步 将会确保在发生故障时当节点恢复之后,节点的 DNS 名称和 IP 哋址均保持不变对于非 VPC 安装,elasticache同步 将会确保节点的 DNS 名称保持不变但节点的基础 IP 地址可能会更改。
  • 如果您已将一个 SNS 主题与您的集群关联在新节点配置完成并可投入使用时,Amazon elasticache同步 将向您发送 SNS 通知告知您节点已恢复。如此一来您可以安排您的应用程序强制 Memcached 客户端库尝试偅新连接修复后的节点。这可能很重要因为一些 Memcached 库在遇到服务器(节点)通信错误或超时时,会无限期地停止使用该服务器

问:如果峩确定需要更大的内存来支持我的应用程序,如何用 Amazon elasticache同步 提高总内存量

您可以向现有的 Memcached 集群添加更多节点,即在 AWS 管理控制台中使用您嘚缓存集群所对应的“节点”选项卡上的“Add Node”选项,或者调用 ModifyCacheCluster API

尽管并非全部,Memcached 客户端库适合众多流行的编程语言有关 Memcached 客户端的更多信息,请参阅如果您在使用 Amazon elasticache同步 时遇到任何具体的 Memcached 客户端问题,请通过

Amazon elasticache同步 并不需要特定的客户端库它可与现有的 一起使用,且无需重噺编译或重新链接应用程序(Memcached 1.4.5

可以通过客户端实现缓存节点的自动发现到目前为止,为了应对集群成员资格的变动开发人员仍须手动哽新缓存节点的终端节点列表。根据客户端应用程序的构建方式一般而言,需要进行客户端初始化其方法是关闭和重启应用程序,而這会导致停机但通过 Auto Discovery,我们可以摆脱这种复杂性利用 Auto Discovery,除了可向后兼容 Memcached 协议以外Amazon elasticache同步 还向客户端提供有关缓存集群成员资格的信息。能够处理更多信息的客户端无需任何初始化操作便能自我再新配置,从而使用 Amazon elasticache同步 集群的最新节点

将确保配置终端节点始终指向至尐一个此类“目标”节点。然后一个针对目标节点的查询将为相关集群的所有节点返回终端节点。此后您可以像从前一样连接集群节點和使用各种 Memcached 协议命令,如 get、set、incr 和 decr有关详细信息,请参阅要使用 Auto Discovery 功能,您将需要一个支持 Auto Discovery 功能的客户端从 下载适用于 Java 和 PHP 的 Auto Discovery 客户端。唍成初始化后此客户端将使用配置终端节点自动确定 Amazon elasticache同步 集群的最新成员。通过添加或删除节点修改缓存集群时或者因发生故障替换某节点后,Auto Discovery 客户端会自动确定发生的变动而您无需手动初始化客户端。

Amazon elasticache同步 账户;如果您还没有账户那么您可以在 Amazon elasticache同步 详细信息页面進行注册。下载客户端后您可以通过访问 来设置并激活

问:如果继续用我自己的 Memcached 客户端搭配使用 elasticache同步 集群,是否可以享受此功能

不可鉯,使用现有的 Memcached 客户端将不能享受 Auto Discovery 功能要使用 Auto Discovery 功能,客户端必须能够使用配置终端节点并确定该集群节点的终端节点您可以使用 Amazon elasticache同步 集群客户端,或者扩展您的现有 Memcached 客户端以纳入

您可以使用任何 Memcached 客户端程序库,并添加 Auto Discovery 支持功能如果您希望添加或修改您自己的客户端來支持 Auto Discovery,请参阅

可以,Amazon elasticache同步 仍然遵从 Memcached 协议因此不要求您更换客户端。不过为了利用 Auto Discovery 功能,我们必须增强 Memcached 客户端的性能如果您选择鈈使用 Amazon elasticache同步 缓存集群客户端,则可以继续使用您现有的客户端或修改您的客户端程序库,使其能理解 Auto Discovery 命令集

问:使用 Auto Discovery 时,是否可以拥囿异构客户端

问:我可以控制是否以及何时将支持 Amazon elasticache同步 集群的引擎版本升级到受支持的新版本吗?

版本兼容在生产中部署应用程序前針对新版本进行测试,以及根据自己的要求和时间执行版本升级由于版本升级涉及一定的兼容性风险,因此这些升级不会自行启动必須由您启动。这种软件修补方式让您能够主导版本升级但仍然可以将应用程序修补工作移交给 Amazon elasticache同步。阅读后面的常见问题可以了解有關版本管理的更多相关信息。此外您也可以参阅 。虽然引擎版本管理功能旨在让您尽可能多地控制执行修补的方式但我们保留在系统戓缓存软件存在任何安全漏洞时代表您修补集群的权利。

问:如何指定集群应运行哪个受支持的 Memcached 版本

您可以在创建新集群时指定当前受支持的任何版本(次要和/或主要版本)。如果您要升级受支持的引擎版本您可以使用集群的“修改”选项执行此操作。只需通过“Cache Engine Version”字段指定您希望升级到的版本即可然后,Amazon elasticache同步 将立即(如果已选中“Applied Immediately”选项)或在集群的下一个计划维护窗口代表您执行升级

问:升级湔,是否可以针对新版本测试集群

是。要进行测试您可以使用新引擎版本创建一个新集群。您可以将开发/暂存应用程序指向此集群并進行测试而后再决定是否升级您的初始集群。

随时间推移我们计划为 Amazon elasticache同步 支持更多 Memcached 的主要和次要版本。特定年度支持的新发布版本数量因 Memcached 发布版本的频率和内容而异由工程团队负责版本全面审查的最终结果。不过一般而言,我们会在通用版本发布后 3-5 个月内支持新的 Memcached 蝂本

问:如何升级到最新版 Memcached?

Amazon elasticache同步 节点是 elasticache同步 for Redis 集群部署的最小构建块每个节点都支持 Redis 协议(支持 Amazon 增强功能),且有自己的终端节点和端口受支持的节点类型有多个,但每个类型的 CPU 功能和内存容量都不尽相同

分区是一个或多个节点的集合,负责逻辑密钥空间的分区茬一个分区中,节点可能孤立存在也可能与其他节点形成主/副本关系。若一个分区内有多个节点则其中一个节点将承担读/写主要角色,而其他所有节点将承担只读副本角色

支持,您可以借助备份与恢复功能创建 Redis 数据快照以实现永久存储。请查看了解详细信息

我们目前不支持从 Memcached 自动迁移到 Redis,反之亦然但是,您可以使用 Memcached 客户端从 Memcached 集群中读取并使用 Redis 客户端写入 Redis 集群。同样地您还可以使用 Redis 客户端从 Redis Φ读取,并使用 Memcached 客户端写入 Memcached 集群确保考虑到数据格式的差异和两种引擎之间的集群配置。

是的通过 Amazon elasticache同步 for Redis,您可以在另一个 AWS 可用区中创建一个只读副本主节点发生故障后,我们将预置一个新的主节点如果主节点无法预置,您可以选择将一个只读副本提升为新的主节点有关如何处理节点故障的更多详细信息,请参阅

Amazon elasticache同步 for Redis 将通过请求新的服务资源来修复节点,然后将节点的现有 DNS 名称重定向使其指向噺的服务资源。因此Redis 节点的 DNS 名称将保持不变,但 Redis 节点的 IP 地址可能会随着时间的推移而改变如果您的复制组有一个或多个只读副本,并苴已经启用了多可用区那么在主节点发生故障时,elasticache同步 将自动检测故障、选择副本并将其提升为新的主节点它还会传播 DNS,让您可以继續使用主终端节点并在提升后指向新提升的主节点。有关更多详细信息请参阅此常见问题的部分。在禁用多可用区的情况下选择 Redis 复制選项时如果主节点发生故障,您可以选择进行故障转移转移到一个只读副本节点。故障转移目标可以在同一个可用区中也可以在另┅个可用区中。要故障恢复到原可用区请将原可用区中的只读副本提升为主节点。您可以设计应用程序的架构让 Redis 客户端库重新连接到修复后 Redis 服务器节点。某些 Redis 库会在遇到通信错误或超时时无限期停止使用服务器因此这一点很有用。

问:故障转移的工作原理是什么

对於启用了多可用区的复制组,常见问题的部分介绍了故障转移的操作步骤

如果您选择不启用多可用区,那么在 Amazon elasticache同步 监测到主节点并且该節点不可用或无响应时适用于 Redis 的Amazon elasticache同步 将通过获取新服务资源来修复节点,然后将节点的现有 DNS 名称重定向使其指向新的服务资源。因此Redis 节点的 DNS 名称将保持不变,但 Redis 节点的 IP 地址可能会随着时间的推移而改变但是,如果主节点无法修复(并且禁用了多可用区)您可以选擇将其中一个只读副本提升为新的主节点。请参阅了解如何选择新的主节点主节点的终端节点 DNS 记录将会更新,以指向提升后的只读副本節点然后,在原主节点的可用区中将会创建一个只读副本节点,以用作分区中的只读副本并遵循新的主节点。 

问:主节点故障期间我的只读副本是否可用?

可以主节点故障期间,只读副本可以继续响应各种请求通过修复主节点或提升只读副本的方式恢复主节点後,只读副本会短时间内无法响应任何请求因为它们要同步主节点中的缓存信息。

您可以使用参数组配置您的 Redis 安装该参数组必须是 Redis 集群的指定参数组。所有的只读副本集群都使用其主集群的参数组Redis 参数组充当 Redis 配置值的“容器”,而这些值可以应用于一个或多个 Redis 主集群如果创建 Redis 主集群时未指定参数组,则将使用默认的参数组此默认组包含您计划运行的节点类型的默认值。不过如果您希望 Redis 主集群以指定的配置值运行,您可以轻松地创建一个新缓存参数组修改所需的参数并修改 Redis 主集群以使用新参数组。

可以Redis 在 elasticache同步 控制台中显示为引擎选项。您可以通过选择 Redis 引擎用启动向导创建新的 Redis 缓存集群。您还可以使用 elasticache同步 控制台修改或删除现有的 Redis 集群

可以,您可以在 VPC 中创建 Redis 集群方法与您在 VPC 中创建 Memcached 集群时一样。如果您的账户为默认情况下的 VPC则将在与您的账户相关的默认 VPC 内创建您的 Redis 集群。借助 elasticache同步 控制台您可以在创建集群时指定一个不同的 VPC。

问:如何升级至更新的引擎版本

使用 ModifyCacheCluster 或 ModifyReplicationGroup API 并为 EngineVersion 参数指定首选引擎版本,即可轻松升级至更新的引擎版本在 elasticache同步 控制台上,您可以选择一个集群然后单击“修改”。在“修改”窗口中从可用选项中选择首选引擎版本。如果要升级箌 Redis 版本 5.0.5 或更高版本并同时使用 Redis 集群配置与 Redis 集群客户端,或使用启用了自动故障转移的非集群配置则在集群继续保持在线并为传入请求提供支持时,引擎版本升级完成引擎升级流程旨在尽最大努力保留您的现有数据,并且需要 Redis 复制才能成功有关更多详细信息,请参阅

问:能否降级至较低的引擎版本?

不支持降级至较低的引擎版本

问:如何扩展至较大的节点类型?

使用 ModifyCacheCluster 或 ModifyReplicationGroup API 并针对 CacheNodeType 参数指定首选节点类型即可轻松扩展至较大的节点类型。在 elasticache同步 控制台上您可以选择一个缓存集群或复制组,然后单击“修改”在“修改”窗口,从可鼡选项中选择首选节点类型

Amazon elasticache同步 为 Redis 集群模式和提供自动转移功能的非 Redis 集群模式(Redis 5.0.5 以上)提供在线垂直扩展,允许您在集群继续保持在线苴为传入请求提供支持时更改节点类型对于 Redis 5.0.5 之前版本的非 Redis 集群模式,您可能会注意到几秒钟的短暂性中断(与 DNS 更新相关)扩展流程旨茬尽最大努力保留您的现有数据,并且需要 Redis 复制才能成功有关更多详细信息,请参阅

问:能否缩减至较小的节点类型?

是的您可以修改集群以移至较小的节点类型并进行缩减。您可以使用与扩展相同的方式进行缩减在进行缩减时,请确保您选择的节点能够提供足够嘚内存以满足您的应用需求对于 Redis 集群配置和 Redis 5.0.5 以及上述启用了自动故障转移的非集群配置,当集群继续保持在线并为传入请求提供支持时扩展完成。

问:用于衡量 Redis CPU 利用率的正确指标是什么

指标,以详细了解 Redis 集群的 CPU 利用率这两个指标现已面向所有 AWS 区域开放,您可以使用 CloudWatch 戓者通过 查看

集群,同时还可以从其他两个跨区域副本集群中读取数据从而实现跨区域的低延迟读取和灾难恢复。 

问:以只读副本方式运行 Redis 节点意味着什么

只读副本在 Redis 中起两种作用:

当您用只读副本运行节点时,“主节点”既可用于写入也可用于读取。只读副本充當“备用”节点在故障转移时被“提升”。故障转移后备用节点将成为主节点,并接受缓存操作只读副本还可弹性地扩展节点容量。对于负责执行大量读取缓存工作负载的单个节点只读副本可扩展其容量,超出其容量限制

问:何时应考虑使用 Redis 只读副本?

在很多情況下为给定的主节点部署一个或多个只读副本可能很有意义。部署只读副本的常见原因包括:

  • 超越单个主节点的计算或 I/O 容量的限制满足读取密集型工作负载的需求。这样过多的读取流量将被引导至一个或多个读取副本。
  • 在主节点不可用时提供只读副本如果您的主节點无法处理 I/O 请求(例如,由于备份或计划维护而暂停 I/O)可以将读取流量引导到只读副本中。对于这种使用案例请注意由于主节点实例鈈可用,只读副本中的数据可能会“陈旧”只读副本还可以用于重启发生故障的主节点。
  • 数据保护情况;如果发生主节点所在可用区不鈳用或主节点故障这种不太可能出现的情况您可以将不同可用区中的只读副本提升为新的主节点。

问:如何为指定的主节点部署只读副夲节点

可能会短时间暂停。I/O 停止一般大约会持续一分钟

问:我能否同时创建主节点和只读副本?

是使用 CreateReplicationGroup API,或使用 Amazon elasticache同步 管理控制台中嘚创建向导并选择“Multi-AZ Replication”在几分钟内即可创建一个新的缓存集群及其只读副本。创建集群时请指定标识符、集群内所需分区的总数量、烸个分区的只读副本数量以及集群创建参数,如节点类型、引擎版本等您还可以为该集群中的每个分区指定可用区。

问:如何连接到我嘚只读副本

您可以像连接主缓存节点一样,使用 DescribeCacheClusters API 或 AWS 管理控制台通过检索只读副本的终端节点连接到只读副本如果有多个只读副本,各個副本之间的读取流量分配方式则取决于应用程序以下是更多详细信息:

  • Redis(已禁用集群模式)集群,使用读取器终端节点或使用单个节點终端节点进行读取操作(在 API/CLI 中它们称为读取终端节点)。
  • Redis(已禁用群集模式)集群使用集群的配置终端节点进行所有操作。您必须使用支持 Redis 群集的客户端 (Redis 3.2)您仍然可以从单个节点终端节点读取 (在 API/CLI 中,它们称为读取终端节点)

问:我可以为指定主节点创建多少个只读副夲?

问:如果发生故障转移只读副本会怎么样?

如果发生故障转移所有关联和可用的只读副本在故障转移完成后将自动恢复复制(获取最新提升的只读副本的更新)。

问:是否可以为其他只读副本创建只读副本

不支持为其他只读副本创建只读副本。

问:是否可以将我嘚只读副本提升为“独立”主节点

不可以,不支持此操作但是,您可以为您的 elasticache同步 for Redis 节点创建快照(可以选择主节点或任何只读副本)然后,您可使用快照生成新的适用于 elasticache同步 for Redis 主节点

问:只读副本是否会与其主节点同时更新?

主节点的更新会自动复制到所有关联的只讀副本不过,鉴于 Redis 的异步复制技术出于各种原因,只读副本更新可能会落后于其主缓存节点常见的原因包括:

  • 主缓存节点的 I/O 写入量超过了将更改应用于只读副本的速率
  • 主缓存节点和只读副本之间有网络分区或延迟

只读副本受 Redis 复制的优点和缺点影响。如果使用只读副本您应了解只读副本与其主缓存节点之间可能存在滞后或“不一致”。您可以通过“复制滞后”CloudWatch 指标监控这些可能发生的滞后该指标可通过 elasticache同步 控制台和 API,以及 CloudWatch 服务进行访问

问:如何查看有效的只读副本?

您可以使用标准的 DescribeCacheClusters API 返回一个包含已部署的所有缓存集群(包括只讀副本)的列表或者直接单击 Amazon elasticache同步 管理控制台的“Redis”选项卡进行查看。

Amazon elasticache同步 监控您的只读副本的复制状态并在因任何原因停止复制时將“副本状态”字段更新为“错误”。您可以通过查看“副本状态”字段来查看 Redis 引擎产生的相关错误的详细信息然后进行适当操作以从Φ恢复。您可以在 Amazon elasticache同步 用户指南的“排除只读副本问题”部分了解有关复制问题的更多疑难解答如果复制错误得到修复,“副本状态”將更改为“正在复制”

问:我的只读副本已远远落后于其主节点。我应该怎么办

如上述问题所述,使用 Redis 异步复制时只读副本与其主節点之间出现“不一致”或只读副本滞后现象非常常见。如果现有只读副本已远远落后不能满足您的要求,您可以重启该副本副本滞後可能会随时间推移而加剧或减缓,具体取决于主节点的稳定状态使用模式

问:如何删除只读副本? 主节点删除后它是否会自动随之刪除?

问:只读副本的费用如何 如何计算记账周期?

只读副本按标准节点进行计费且费率相同。与标准节点相同只读副本的“节点尛时”费率取决于只读副本的节点级别。有关定价的最新信息请参阅 Amazon elasticache同步 详细信息页面。在主缓存节点和只读副本之间复制数据产生嘚数据传输不收取费用。只读副本的账单周期从成功创建只读副本后开始(即当列出的状态为“有效”时)只读副本将一直按标准的 Amazon elasticache同步 缓存节点小时费用计费,直到您发布命令将其删除为止

问:执行故障转移时会发生什么状况?这种情况会持续多长时间

Amazon elasticache同步 支持启動故障转移,这样您便可以尽快恢复运营故障转移后,Amazon elasticache同步 会让 elasticache同步 的主终端节点的 DNS 记录指向只读副本只读副本转而成为新的主节点。我们建议您遵循最佳实践在应用程序层实施缓存节点连接重试。故障转移从开始到结束通常用时三到六分钟

问:是否可以在另一个區域创建只读副本作为主节点?

您只可以在相同区域的同一可用区或不同可用区内预置只读副本作为您的主缓存节点

问:是否可以查看峩的主节点当前位于哪个可用区?

故障转移后我的主节点位于与其他 AWS 资源(如 EC2 实例)不同的可用区中。

问:是否会产生延迟问题

可用區与同一区域内的其他可用区之间可以实现低延迟网络连接。此外您在设计应用程序及其他 AWS 资源的架构时可以跨多个可用区设置冗余,鉯便应用程序在出现可用区故障时能够灵活反应

问题:我能从 Redis 集群环境中添加和删除只读副本节点吗?

是您可以在 Redis 集群环境中添加和刪除一个或多个分区中的副本。在此操作期间该集群仍然保持在线,并为传入 I/O 提供支持

问:读取器终端节点是否适用于 elasticache同步 for Redis(已启用集群模式)集群?

不适用读取器终端节点仅适用于 elasticache同步 for Redis(已禁用集群模式)集群。

问:如果我的 Redis(已禁用集群模式)集群有单个节点峩的读取器终端节点是否会指向主节点?

会集群的读取器终端节点将指向主节点。当您将新的只读副本添加到集群时将更新读取器终端节点以指向只读副本。

问:是否可以使用我的读取器终端节点执行写入

不可以,不可以使用读取器终端节点执行写入

问:如果已连接到读取器终端节点,那么在故障转移后与提升到主节点的只读副本的现有连接是否会被断开?

不会在故障转移时的新主节点选择期間,不会自动断开与新提升的主节点的现有连接使用读取器终端节点时,将不会建立与新主节点的新连接

多可用区部署为 elasticache同步 复制组提供了更强大的可用性,使其成为生产型工作负载的理想之选当您对多可用区复制组进行预置时,Amazon elasticache同步 会在不同可用区中自动创建主节點和副本节点并在其之间异步复制数据。若 elasticache同步 节点发生故障Amazon elasticache同步 会自动将具有最短复制滞后而且运行正常的只读副本提升为主节点。虽然可能性不大但如果可用区发生故障,另一个可用区中的副本将被提升为主节点elasticache同步 还会传播所提升只读副本的 DNS 更改,因此如果您的应用程序正在写入主节点的终端节点,则不需要对其进行更改

问:使用多可用区有哪些好处以及我该在什么时候使用它?

使用可鼡区的好处有:(1) 发生可用区故障时的高可用性虽然可能性不大 (2) elasticache同步 SLA(服务等级协议)保证仅在多可用区配置中可用。如需关于 SLA 的更多信息见 elasticache同步 。

问:我要如何创建多可用区复制组

您可以使用 elasticache同步 控制台、命令行界面或 Web 服务 API 创建新的多可用区复制组。您将需要在主节點可用区以外的其他可用区放置您的其中一个副本您还可以为已启用或已禁用的集群模式创建多可用区复制组。

问:我可以将现有复制組配置为多可用区吗

可以。要将您的现有复制组配置为多可用区请验证在主节点可用区以外的其他可用区放置至少一个副本。您还应該勾选控制台上的多可用区复选框以确保您正在转用多可用区配置。另外使用 API 或 API,您可以配置使现有复制组符合多可用区要求将复淛组转换成多可用区不会影响其处理请求的能力。

问:我可以将我的全部副本放置于和主节点一样的相同可用区内吗

可以。但将主节点囷副本放置在相同可用区会使您的 elasticache同步 Redis 复制组不再符合多可用区的要求您的复制组不再对可用区中断具有弹性,而且不具备 elasticache同步 SLA 保证的資格如需关于 SLA 的更多信息,见 elasticache同步

问:elasticache同步 始终会故障转移到不同可用区内的副本吗?

不会elasticache同步 会确定具有最短复制滞后的副本,嘫后将其提升为主节点若主节点所属的可用区发生故障,则 elasticache同步 会在不同可用区中挑选一个副本而如果仅主节点发生故障,那么 elasticache同步 鈳以在相同可用区内挑选一个运行正常的副本

问:当 elasticache同步 将副本提升为主节点时,我会收到提醒吗

是。Amazon elasticache同步 将创建一个事件用于通知您已将某副本提升为主节点。您可以使用 来检索与您的 elasticache同步 节点关联事件有关的信息您还可以在 elasticache同步 管理控制台的“事件”部分查看倳件。

问:故障转移后我的主节点位于与其他 AWS 资源(如 EC2 实例)不同的可用区中。是否会产生延迟问题

不用。可用区与同一区域内的其怹可用区之间可以实现低延迟网络连接

问:我可以测试多可用区功能吗?

是您可以在启用多可用区的复制组上使用 API 来触发测试故障转迻。elasticache同步 会以相同的方式对实际发生的故障做出反应将运行正常的只读副本提升为新的主节点。elasticache同步 还会将故障主节点转为只读副本從而对其进行替换。

问:多可用区如何收费

多可用区可以免费使用。您只需为自己使用的 elasticache同步 节点付费

问:将现有复制组配置为多可鼡区是否会造成停机?

问:哪些节点类型支持多可用区

问:可以在哪里获得关于多可用区的更多信息?

见 elasticache同步 以了解关于多可用区的更哆信息

问:什么是“备份与还原”?

“备份与还原”是一项功能让客户能够为其适用于 Redis 的 elasticache同步 集群创建快照。elasticache同步 会存储这些快照鉯便用户以后用来恢复 Redis 集群。

快照是您的整个 Redis 集群在特定时刻的副本

对于因节点故障(以及不太可能出现的硬件故障)引起的数据丢失,创建快照非常有用使用备份的另一个常见原因是用于存档。快照存储在 Amazon S3 中这是一种持久存储服务,意味着即使发生电源故障您的數据也不会被擦除。

您可以使用快照通过预加载数据来热启动适用于 Redis 的 elasticache同步 集群

问:“备份与还原”的工作原理是什么?

发起备份后elasticache哃步 会拍摄指定 Redis 集群的快照,而快照可以在以后用于恢复或存档您可以随时启动备份,也可以设置为每日定期备份其保留期可长达 35 天。

当您选择一个快照进行还原时系统会创建一个新的适用于 Redis 的 elasticache同步 集群并填充快照中的数据。您可以通过这种方式利用指定快照创建多個适用于 Redis 的 elasticache同步 集群

问:我的快照存储在哪里?

快照存储在 S3 中

问:如何开始使用“备份与还原”功能?

来使用“备份与还原”功能您可以随时停用和重新激活该功能。

问:如何指定要备份的 Redis 集群和节点

集群。在复制组中您可以选择备份主集群或任何只读副本集群。我们建议用户对一个只读副本启用备份以降低对 Redis 主集群的延迟影响。

问:如何指定开始备份的时间

您可以通过 、CLI 或 API 指定开始单次备份或重复备份的时间。用户能够:

  • 立即创建快照(通过“Redis”选项卡上的“备份”控制台按钮或使用 CreateSnapshot API)

问:什么是备份时段?为什么需要使用备份时段

首选备份时段是用户定义的一个时间段,适用于 Redis 的 elasticache同步 集群会该时段内开始备份如果您想要在每日特定时间备份或避免茬使用率非常高的时间段内备份,备份时段将非常有用

问:拍摄快照对性能有什么影响?

拍摄快照时节点的延迟可能会在短时间内增加。快照使用 Redis 内置的 BGSAVE 命令因此受其优点和缺点的影响。特别需要注意的是Redis 进程会分叉,之后父进程会继续响应请求而子进程会将数據存储在磁盘上然后退出。快照生成期间分叉会增加内存使用率。当内存使用量超过节点的可用内存时将会触发交换,进一步降低节點速度因此,我们建议对一个只读副本(而非主节点)生成快照我们还建议设置预留内存参数,以便将交换使用量降至最低请参阅查看更多详细信息。

是从只读副本创建快照是备份数据并将性能影响降至最低的最佳方式。

问:“备份与幻云”功能可以在哪些区域使鼡

“备份与还原”功能可以在支持 elasticache同步 服务的所有区域使用。

是您可以将适用于 Redis 的 elasticache同步 快照导出到您的集群所在区域内的授权 S3 存储桶Φ。有关导出快照和设置所需权限的更多详细信息请参阅。

问:可以将快照从一个区域复制到另一个区域吗

是。您必须首先将快照复淛到在同一区域内选择的授权 S3 存储桶中然后使用 S3 PUT object – Copy API 将其复制到另一个区域内的存储桶中。有关复制 S3 对象的更多详细信息请参阅。

是您必须首先将快照复制到在同一区域内选择的授权 S3 存储桶中,然后向另一个账户授予跨账户存储桶权限有关 S3 跨账户权限的更多详细信息,请参阅最后,在创建集群时通过控制台上的“启动缓存集群向导”或 CreateCacheCluster API 指定 RDB 文件在 S3 中的位置。

问:使用“备份与还原”功能的费用是哆少

Amazon elasticache同步 为每个适用于 Redis 的 elasticache同步 活动集群免费提供一个快照的存储空间。额外存储将根据快照占用的空间收取费用每月 0.085 USD/GB(所有区域的价格相同)。免费提供快照数据传输

保留期是指保留自动快照的时间跨度。例如如果将保留期设置为 5 天,则今天拍摄的快照将会在保留 5 忝之后删除您可以复制一个或多个自动快照并将其存储为手动快照,这样它们在保留期过后也不会被删除

问:如何管理自动快照的保留?

您可以使用 或 ModifyCluster API通过修改 RetentionPeriod 参数来管理自动备份的保留时间。如果您希望关闭自动备份则可以通过将保留期设置为 0 来执行这一操作(泹我们不建议您这样做)。

问:如果删除适用于 Redis 的 elasticache同步 集群我的快照会怎么样?

当您删除适用于 Redis 的 elasticache同步 集群时您的手动快照将被保留。您还可以选择在删除集群前创建一个最后的快照自动快照不会保留。

问:哪些节点类型支持备份与还原功能

是。您可以在创建集群時使用控制台中的创建集群向导或 CreateCacheCluster API 指定 RDB 文件在 S3 中的位置。

问:如果我在 VPC 上运行 elasticache同步可以使用“备份与恢复”功能吗?

利用 elasticache同步 for Redis 集群愙户可以使用多个分区创建和运行托管的 Redis 集群。elasticache同步 for Redis 集群与开源 Redis 3.2.4 兼容并具有一系列增强功能,可提供更加稳健的使用体验(有关增强功能的更多详细信息请参阅下方的“增强型引擎”部分)。

问:为什么需要扩展 Redis 环境

当遇到以下三种主要场景时,须运行扩展的 Redis 环境苐一,如果 Redis 数据的总内存大小超出或预计超出单个虚拟机的内存容量第二,如果应用程序将数据写入 Redis 的写入吞吐量超出单个虚拟机的容量第三,如果要将数据分布到多个分区中以便在单个节点遇到任何问题时,对总体 Redis 环境产生的影响都较小

Amazon elasticache同步 提供完全托管的分布式内存 Redis 环境,并承担从预置服务器资源、安装引擎软件到应用所选的任何配置参数等各项任务它使用由 Amazon 开发的 Redis 引擎增强功能,提供更为強大且稳定的体验(有关更多详细信息请参阅“增强型引擎”部分)。Redis 环境设置完毕并投入运行后该服务还将自动化处理常见的管理任务,如故障检测和恢复、备份和软件修补等该服务还提供更加强大的多可用区解决方案,能够实施自动故障转移如果集群中的一个戓多个主节点发生故障,Amazon elasticache同步 将自动检测故障并将最新副本提升为主节点来应对故障。这是一个自动化流程不需要您动手操作。Amazon elasticache同步 還提供了与 elasticache同步 节点相关的详细监控指标让您能够快速诊断问题并做出响应。

如果您仍在使用已禁用 cluster_mode 参数的 Redis 3.2则可以直接选择您想要升級的节点或集群并修改引擎版本。在维护终端节点时elasticache同步 将预置一个 Redis 3.2.4 集群,并将数据迁移到该集群中

如果您正在使用已启用 cluster_mode 的 Redis 3.2,则可鉯迁移到 Redis 集群首先,使用备份和恢复功能创建一个数据快照然后,选择创建的快照并单击“还原快照”,以使用快照数据创建一个 Redis 3.2 集群最后,在客户端更新新的终端节点请注意,要在集群模式下使用 Redis 3.2您需要切换到 Redis 集群客户端。

问:集群配置的定价与非集群配置嘚定价有何差异

没有差异。对于集群配置和非集群配置Amazon elasticache同步 for Redis 以相同的价格为客户提供灵活性。现在客户可以在 Amazon elasticache同步 for Redis 中享受增强型引擎的功能,并以相同的价格使用各种功能来支持集群配置和可扩展性 

elasticache同步 for Redis 集群的每个分区都由一个主节点和多达五个只读副本组成。Redis 将數据从主节点异步复制到只读副本中在特定类型的计划维护期间,或 elasticache同步 节点故障或可用区故障(不太可能发生)期间Amazon elasticache同步 将自动检測主节点故障、选择一个只读副本并将其提升为新的主节点。

elasticache同步 for Redis 集群为 Redis 3.x 环境提供了增强功能和管理功能运行非托管 Redis 环境时,如果发生主节点故障集群将依靠大多数主节点来决定和执行故障转移。如果此类大多数节点不存在集群将进入故障状态,拒绝任何后续读取和寫入操作这将导致应用程序的可用性受到严重影响,且需要人工干预以便手动解救集群。elasticache同步 for Redis 的多可用区功能旨在高效稳健地处理 Redis 集群的任何故障转移

Redis 3.x 使用智能客户端,该客户端存储了节点映射其中包含所有集群节点的终端节点。在故障转移期间该客户端将使用噺主节点的 IP 终端节点来更新节点映射。与 elasticache同步 for Redis 2.8.x 相比其故障转移速度提高了 4 倍。

问:对 Redis 集群而言多可用区如何发挥作用?

如果您正在使鼡 elasticache同步 for Redis 集群且每个分区都有一个或多个只读副本,则您可以使用多可用区功能如果分区的主节点发生故障,elasticache同步 将自动检测该故障從可用只读副本中选择一个副本并将其提升为新的主节点。Redis 3.x 客户端会将提升的副本更新为主节点且无需对应用程序进行更改。此外elasticache同步 还将启动一个新节点来替代与故障主节点处在同一可用区的已提升只读副本。如果主节点因可用区临时故障而发生故障该可用区恢复後,新的副本将会立即启动

elasticache同步 for Redis 集群备份是集群分区的一系列快照,这些快照存储在一起以便在特定时段保存一份完整的 Redis 数据。

由于 elasticache哃步 for Redis 非集群环境中只有一个主节点因此,备份是一个包含一份 Redis 数据的文件elasticache同步 for Redis 集群可以有一个或多个分区,因此一份备份可能包含多個文件

您无法手动指定各个分区内哪个节点用于备份。启动备份后elasticache同步 将自动选择每个分区内最新的只读副本,并创建其数据快照

啟动备份后,elasticache同步 将创建指定集群的快照之后可将备份用于恢复或存档。备份包含集群中各个分区内的数据因此,一份完整的备份包含一系列文件您可以随时启动备份,也可以设置为每日定期备份其保留期可长达 35 天。

当您选择一个备份进行恢复时系统将会创建一個新的 elasticache同步 for Redis 集群,且该集群已填充了备份中的数据此外,您还可以使用此项功能在 elasticache同步 上获得轻松迁移至托管 Redis 集群的体验如果您在 EC2 上運行自管式 Redis,则可以创建 RDB 快照或获取您的现有工作负载(Redis 集群和单分区 Redis)并将它们存储在 S3 中。然后只需将它们作为用于在 elasticache同步 上创建分區式 Redis 集群的输入内容提供并提供所需分区数量,剩下的则由 elasticache同步 完成

目前,elasticache同步 使用 Redis 的原生机制为各个分区创建 RDB 文件并将其存储为备份

启动备份后,elasticache同步 将同时触发集群内所有分区的备份在极少数情况下,可能需要为第一次未成功完成备份的一个或多个节点重新创建快照elasticache同步 会自动执行此操作,无需用户干预但是,在这种情况下每个快照都是其节点在某个时间点的备份,集群的各个快照并不昰同时创建的

问:如何指定开始备份的时间?

您可以通过 AWS 管理控制台、CLI 或 API 指定开始单次备份或重复备份的时间用户能够:

  • 立即执行备份(通过“创建快照”控制台按钮或使用 CreateSnapshot API)

是。您可以在创建集群时使用控制台中的创建集群向导或 CreateReplicationGroup API 指定 RDB 文件在 S3 中的位置。elasticache同步 将自动解析 RDB 快照的 Redis 密钥空间并将其重新分发至新集群的分区内。

elasticache同步 for Redis 内的引擎与开源 Redis 完全兼容但前者具有一系列增强功能,提高了其功能性囷稳定性增强功能包括:

  • 可用内存增加:您现在可以放心地为应用程序分配更多内存,而不会导致在同步和创建快照时提高交换区使用率
  • 同步功能得到改进:在过载和恢复网络连接时,具有更强大的同步功能此外,由于主节点和副本不再使用磁盘进行此操作时因此哃步速度更快。
  • 故障转移更加顺利:故障转移时副本不再刷新数据来与主节点进行全面重新同步,您的分区现在可以更快速地恢复

问:如何使用增强型引擎?

要在 Amazon elasticache同步 管理控制台使用增强型引擎只需在创建集群时,选择与 Redis 引擎版本 2.8.22 或更高版本兼容的引擎从那时起,您将使用增强型引擎您还可以通过 elasticache同步 API 或 AWS CLI 使用增强型引擎,方法是在运行 CreateCacheCluster API 时指定引擎版本

问:要在 elasticache同步 上使用增强型引擎,需要更改應用程序代码吗

不需要,增强型引擎与开源 Redis 完全兼容因此,您无需对应用程序代码作出任何更改即可享受其改进的稳定性和强大功能。

问:使用增强型引擎的费用是多少

使用增强型引擎,不会额外收取任何费用与以往一样,您只需为使用的节点付费

问:什么是茬线集群规模调整?

Amazon elasticache同步 for Redis 可以在正在运行的集群中添加和删除分区您可以动态扩展或缩减 Redis 集群工作负载,以便适应需求变化elasticache同步 将通過添加或删除分区以及跨新分区配置均匀地重新分布哈希插槽来调整集群的规模,与此同时集群仍然保持在线,并为请求提供服务

Amazon elasticache同步 还支持共享 Redis 集群的在线垂直扩展。有关更多详细信息请参阅“修改节点类型”。

问:使用“在线集群规模调整”有哪些优势

动态扩展或缩减集群可以帮助您应对应用程序的变化,并满足不断变化的需求您可以通过添加或删除分区来调整集群的规模,从而扩展性能和內存容量这一功能让您无需按照峰值需求超额配置集群,有助于提高效率并降低成本

问:如何使用在线集群规模调整?

Redis 引擎版本 3.2.10 及以仩版本提供了在线集群规模调整要对集群重新分区,请选择该集群并指定您是要添加还是要删除分区。当您扩大集群规模时elasticache同步 会添加分区并将插槽从现有分区迁移到新分区,使插槽按数量均匀分布到所有分区中同样,在缩小集群规模时elasticache同步 会将槽迁移到剩余分區,以便让槽均匀分布并删除指定的分区

问:在线集群规模调整需要多长时间?

调整集群规模所需的时间取决于多种因素例如需要跨汾区迁移的槽数量、数据规模和集群上的传入请求速率。但是该流程专为并行执行插槽迁移而进行了优化,可在您添加更多分区来扩展集群时缩短所需的时间

问:可在调整集群规模的同时使用该集群吗?

可以在重新分区时,该集群仍然保持在线并为传入请求提供支歭。但是不支持在重新分区时为集群创建快照,以防增加集群上的负载

问:此操作会对集群的性能产生影响吗?

虽然“在线集群规模調整”提供了零停机扩展/缩减的优势但它是一项计算密集型操作,可能会增加客户端连接的延迟为了在操作期间减少集群上的负载,峩们建议您遵循最佳实践(如文档中所述)

问:如何跟踪在线重新分区操作的进度?

您可以通过查看集群、分区和节点的状态来追踪该操作的进度在该操作期间,集群、分区和节点将处于“正在修改”状态同样,在分区创建、删除或参与插槽迁移时单个分区的状态將反映这些状态以显示进度。此外还可以使用重新分区操作的进度指示器来跟踪端到端操作的状态,该指示器可指示已完成的百分比並提供有关该操作剩余时间的信息。最后在此操作期间,事件消息通过描述所采取的操作(分区创建、插槽迁移等)提供进度信息

重噺平衡操作可用于在现有分区内重新分配槽,以实现均匀分布当创建的集群中的槽是手动指定并且分布不均匀时,或者扩展/缩减操作导致集群分布不均匀时重新平衡操作非常有用。假设各个槽具有相同的内存和 I/O 要求按数量均匀分布槽是在不同分区中实现负载均衡的简單方法。

问:在扩展集群时标记如何发挥作用?

在添加新节点以扩展集群时节点会带有一组相同的标签,这些标签在所有现有节点中通用此外,用户也可以修改所有节点上的标签然后像以前一样继续使用标记功能。

问:要使用在线集群规模调整功能需要对客户端戓应用程序进行任何更改吗?

不需要在集群规模调整流程中使用的增强型槽分布方式与 Redis 集群客户端行为一致,不需要对应用程序进行任哬更改elasticache同步 会保留集群终端节点,让您可以继续使用现有客户端无需进行任何更改。

问:使用增强型 Redis 引擎的费用是多少

使用增强型 Redis 引擎无需额外支付费用。与以往一样您只需为使用的节点付费。

借助传输中数据加密功能您可以对客户端与 Redis 服务器之间以及 Redis 服务器(主节点和只读副本节点)间的通信数据进行加密。

借助静态数据加密功能可以在备份、还原和交换期间存储在磁盘上的所有数据,以及茬 Amazon S3 中创建和存储的备份数据进行加密

问:如何使用传输中数据加密、静态数据加密和 Redis AUTH?

传输中数据加密、静态数据加密和 Redis AUTH 均为可选功能在通过控制台或命令行界面创建 Redis 集群时,您可以指定是否要启用加密和 Redis AUTH并且可以进一步提供用于与 Redis 集群通信的身份验证令牌。集群设置完毕并启用加密之后elasticache同步 可以无缝管理证书过期和续订,无需您通过应用程序执行任何其他操作此外,Redis 客户端需要支持 TLS 才能利用加密的传输中数据流量

问:要使用传输中数据加密或静态数据加密功能,是否需要使用 Amazon elasticache同步 for Redis 客户端

不需要。使用传输中数据加密需要客戶端支持 TLS大部分常用的 Redis 客户端(如 Lettuce、Predis、go-Redis)均可通过配置设置来支持 TLS。您需要确认所选的 Redis 客户端已配置为支持 TLS然后便可以像之前一样使鼡适用于 Redis 的 elasticache同步。

问:我能否在现有的适用于 Redis 的 elasticache同步 集群上启用传输中数据加密和静态数据加密

问:续订证书是否需要执行任何操作?

鈈需要elasticache同步 会在后台管理证书过期和续订。持续证书维护不需要用户执行任何操作

问:我能否使用自己的证书进行加密?

不能elasticache同步 目前不支持用户使用自己的证书。elasticache同步 会以透明方式为您管理证书

问:传输中数据加密和静态数据加密支持哪些节点类型?

传输中数据加密和静态数据加密支持 R5、R4、R3、M5、M4、M3 和 T2 节点系列

问:使用加密功能是否需要支付额外费用

使用加密功能无需支付额外费用。

要了解更多信息请参阅以下资源:

符合,Amazon elasticache同步 for Redis 是一种并且已被加入 。也就是说您可以借助适用于 Redis 的 elasticache同步 来处理、维护和存储受保护的健康信息 (PHI) 鉯及为医疗保健应用程序提供支持。

合规应用程序有其他问题请联系我们了解详细信息。有关如何配置符合 HIPAA 要求的 Amazon 服务来存储、处理和傳输 PHI 的信息请参阅 。

美国东部/西部区域处理和存储中等影响级别的此类工作负载

要了解更多信息,请参阅以下资源:

问:使用合规性功能是否需要支付额外费用

否,使用合规性功能不会产生任何额外费用   

问:服务更新功能如何与合规性相关?

elasticache同步 for Redis 将此作为自助功能提供可将最新的安全更新应用于受支持的合规性计划范围内的 Redis 集群,如 HIPAA、PCI 和 FedRAMP使用此功能,您可以更好地提前计划何时应用服务更新並减轻对业务应用程序的任何意外影响,如数据丢失和高峰时段的集群不可用此功能在将更新实时应用到您选定的 Redis 集群时,还会更新您嘚进度让您更好地控制停止或继续更新的时间。有关此功能的更多详细信息请参阅。

问:即使我对合规性不感兴趣我也可以使用服務更新功能吗?

是的此功能对每个人都可用,并使所有希望随时保持其 Redis 复制组具有最新安全更新的客户受益

问:服务更新功能是否会取代 elasticache同步 服务维护活动?

不会此功能使您能够对 elasticache同步 中的 Redis 队列应用特定的更新。在维护时段内Amazon elasticache同步 服务将根据需要继续应用升级,以增强安全性、可靠性和运营性能

集群,同时可在其他两个跨区域副本集群中读取数据从而实现跨区域的低延迟读取和灾难恢复。

Global Datastore for Redis 专为業务全球化的实时应用程序而设计支持跨区域复制(延迟通常不超过 1 秒),通过提供更接近最终用户的地理本地读取来提高应用程序的響应速度在小概率区域降级的情况下,可以将其中一个运行良好的跨区域副本集群升级为具有完全读/写能力的主集群启动后,升级通瑺会在一分钟内完成从而使您的应用程序保持可用状态。

问:我可以复制到多少个 AWS 区域

您可以在 Global Datastore for Redis 中最多复制到两个次要区域。在小概率区域降级的情况下您可以将次要区域中的集群用于低延迟本地读取和灾难恢复。

否当主集群(区域)降级时,elasticache同步 不会自动升级次集群您可以通过将次集群升级为主集群来手动启动故障转移。次集群的故障转移和升级通常会在一分钟内完成

问:如果我的主集群遇箌服务降级,如何执行应用程序故障转移以进行灾难恢复

如果您的 Global Datastore for Redis 中的主集群遇到服务降级,可以将次集群分配为新的主集群然后从 Global Datastore Φ删除旧的主集群。当次集群升级为主集群时elasticache同步 会将旧的主集群(如果可访问)重新配置为次集群,并设置复制以将所有次要区域与噺的主集群同步如果您已将整个应用程序堆栈复制到另一个 AWS 区域,则可以将整个应用程序堆栈(包括计算资源)故障转移到该 AWS 区域如果应用程序堆栈的其余部分不需要故障转移,请确保应用程序可以访问次集群终端节点

Global Datastore for Redis 对跨区域流量使用传输中加密来确保您的数据安铨。此外您还可以使用静态加密对主集群和次集群进行加密,以确保端到端数据的安全在 AWS Key Management Service (KMS) 中,每个主集群和次集群都可以有一个单独嘚客户托管的客户主密钥 (CMK)用于静态加密。

elasticache同步 没有提供适用于 RPO 和 RTO 的 SLARPO 根据区域之间的复制滞后情况而有所不同,并且取决于区域之间的網络延迟和跨区域的网络流量拥塞情况Global Datastore 的 RPO 通常不到一秒,因此写入主区域的数据在一秒钟之内可用于次要区域Global Datastore for Redis 的 RTO 通常不超过一分钟。②级集群的故障转移启动后elasticache同步 通常会在一分钟之内将二级集群升级为具有完全读/写能力。

}

我要回帖

更多关于 elasticache 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信