使用 Redis 部署高度可用的分布式高速缓存
Redis 是用作数据库、高速缓存和消息中介的开源内存中数据存储。它支持具有范围查询、位图、HyperLogLogs、具有半径查询的地理空间索引和流的数据结构,例如字符串、散列、列表、集合、排序集。
注意:
OCI 还提供自己的完全托管 Redis 服务。您可以在使用 Redis 的 OCI 高速缓存服务页面找到更多信息。体系结构
此引用体系结构显示了 Oracle Cloud Infrastructure 计算实例上 Redis 集群的典型六节点部署。
下图说明了此引用体系结构。
![后面是 redis-oci-png.png 的说明 后面是 redis-oci-png.png 的说明](img/redis-oci-png.png)
插图 redis-oci-png.png 的说明
此体系结构包含以下组件:
- 区域
Oracle Cloud Infrastructure 区域是一个本地化地理区域,包含一个或多个数据中心,称为可用性域。区域独立于其他区域,其距离很大(跨越国家或甚至大陆)可以分开。
- 可用性域
可用性域是区域内的独立独立数据中心。每个可用性域中的物理资源都与其他可用性域中的资源隔离,这些资源提供故障容差。可用性域不共享基础设施,例如电源、冷却或内部可用性域网络。因此,一个可用性域的故障不可能影响该区域中的其他可用性域。
- 故障域
故障域是可用性域中的一组硬件和基础结构。每个可用性域都有三个具有独立电源和硬件的故障域。在多个故障域之间分配资源时,应用程序可以容忍故障域中的物理服务器故障、系统维护和电源故障。
- 虚拟云网络 (VCN) 和子网
VCN 是在 Oracle Cloud Infrastructure 区域中设置的可自定义、软件定义的网络。与传统的数据中心网络一样,VCN 允许您完全控制您的网络环境。VCN 可以有多个非重叠 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 细分为子网,子网可以限定为区域或可用性域。每个子网包含一系列与 VCN 中的其他子网不重叠的地址。您可以在创建后更改子网的大小。子网可以是公共的或专用的。
在此体系结构中,托管 Redis 群集的所有计算实例都连接到单个区域子网。
- 安全列表
对于每个子网,您可以创建安全规则,以指定必须允许进出子网的源、目标和流量类型。
此体系结构为 TCP 端口 16379 和 6379 添加入站规则。端口 6379 为 Redis 客户机提供服务,Redis 群集总线使用端口 16379。
建议
您的要求可能与此处描述的体系结构不同。使用以下建议案作为起点。
- 计算形状
此体系结构使用具有 VM.Standard2.2 形状的 Oracle Linux 7 .6 OS 映像。如果您的应用程序需要更多的内存、核心或网络带宽,则可以选择其他配置。
- VCN
创建 VCN 时,根据计划附加到 VCN 中子网的资源数确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择不与您要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure、内部部署数据中心或其他云提供商中)重叠的 CIDR 块。
创建 VCN 后,可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可用作安全边界的同一子网。
使用区域子网。
考虑事项
- 可扩展性
确保 Redis 集群可用性所需的最小节点数为三个主节点。此体系结构部署三个主节点和三个副本节点。您可能需要更多节点来满足应用程序的性能或高可用性要求。
您可以通过添加更多计算节点水平缩放 Redis 集群。
您可以通过更改每个计算节点的 VM 形状来垂直缩放 Redis 集群。选择核心计数形状较高的形状也会增加分配给计算实例和网络带宽的内存。
- 应用程序可用性
故障域提供了单个可用性域中的最佳弹性。此体系结构使用另一种高可用性方法,即在具有多个可用性域的区域中部署执行相同任务的计算实例。此设计通过引入冗余来消除单点故障。
部署体系结构后,可以使用 SSH 工具(如 PuTTY 或 Git Bash)连接到 Redis 节点的公共 IP 地址。您可以使用 Redis 命令行界面 redis-cli 与 Redis 部署进行交互。
- 成本
根据数据库所需的核心、内存和网络带宽选择虚拟机 (VM) 配置。如果需要 Redis 节点的更多性能、内存或网络带宽,您可以从单核配置开始,稍后更改 VM 配置。
部署
部署此引用体系结构所需的代码在 GitHub 中可用。单击一次即可将代码拉入 Oracle Cloud Infrastructure Resource Manager,创建堆栈并部署该堆栈。或者,也可以使用 Terraform CLI 将代码从 GitHub 下载到计算机,定制代码并部署体系结构。
- 使用 Oracle Cloud Infrastructure Resource Manager 进行部署:
- 使用 Terraform CLI 部署:
- 转到 GitHub。
- 将代码下载或克隆到本地计算机。
- 请按照
README.md
中的说明操作。