硬件要求
提示
来自deepseek解释
Redis Software 的硬件要求因开发环境和生产环境而异。
- 在开发环境中,您可以使用一个实时数据库来测试您的应用程序。
如果您希望在接近生产的条件下测试应用程序,请遵循生产环境的要求。 - 在生产环境中,您必须具备足够的资源来处理数据库负载并从故障中恢复。
架构
Redis Software 支持 AMD64 (x86_64) 和 ARM64 架构,如下表所示:
| 操作系统 | AMD64 (x86_64) 支持 | ARM64 支持 |
|---|---|---|
| RHEL 9 | ✅ Redis Software 7.4.2 及更高版本 | ✅ Redis Software 8.0.10 及更高版本 |
| RHEL 8 | ✅ Redis Software 6.2.8 及更高版本 | ❌ 不支持 |
| Ubuntu 22 | ✅ Redis Software 7.8.4-66 及更高版本 | ✅ Redis Software 8.0.10 及更高版本 |
| Ubuntu 20 | ✅ Redis Software 6.4.2-43 及更高版本 | ❌ 不支持 |
| Amazon Linux 2 | ✅ Redis Software 6.4.2-69 及更高版本 | ❌ 不支持 |
开发环境
您可以使用非生产级硬件(如笔记本电脑、台式机或小型虚拟机/实例)来搭建开发环境,具体要求如下:
| 项目 | 描述 | 最低要求 | 推荐配置 |
|---|---|---|---|
| 每集群节点数 | 可安装于单节点,但许多功能需要至少两个节点。 | 1 个节点 | >= 2 个节点 |
| 每节点 RAM | 每个节点的内存容量。 | 4GB | >= 10GB |
| 每节点存储 | 每个节点的存储空间。 | 10GB | >= 20GB |
生产环境
对于生产系统或旨在演示生产用例的开发系统,我们推荐以下硬件要求:
| 项目 | 描述 | 最低要求 | 推荐配置 |
|---|---|---|---|
| 每集群节点数1 | 至少需要三个节点来支持可靠、高可用的部署,以一致地处理进程故障、节点故障和网络分裂事件。 | 3 个节点 | >= 3 个节点(必须为奇数) |
| 每节点核心数2 | Redis Software 基于多租户架构,可以在同一核心上运行多个 Redis 进程(或分片),而不会显著影响性能。 | 2 核 | >=8 核 |
| 每节点 RAM3 | 定义 RAM 大小必须是 Redis 使用容量规划的一部分。 | 8GB | >=32GB |
| 临时存储 | 用于存储复制文件(RDB 格式)和集群日志文件。 | RAM x 2 | >= RAM x 4 |
| 持久存储4 | 用于在持久存储介质(如 AWS Elastic Block Storage (EBS) 或 Azure Data Disk)上存储快照(RDB 格式)和 AOF 文件。 | RAM x 3 | 内存型 >= RAM x 4(极端“写入”场景除外) Redis Flex 和 Auto Tiering >= (RAM + Flash) x 4。 |
| 网络5 | 我们建议每个节点使用多个 NIC,每个 NIC 速率 >1Gbps,但 Redis Software 也可以运行在单个 1Gbps 网络接口上,用于处理应用请求、集群间通信和存储访问。 | 1G | >=10G |
| Redis Flex 和 Auto Tiering 的本地磁盘 | 用于通过固态硬盘(SSD)扩展数据库的 DRAM 容量。闪存必须为本地挂载。了解更多 | (RAM+Flash) x 1.6 | (RAM+Flash) x 2.5 |
其他注意事项:
- 超过 35 个节点的集群不受支持。如果您的容量规划需要部署更多节点,请联系 Redis 支持团队寻求帮助。
- 仲裁节点也必须满足上述最低硬件要求。
- 为确保同步和一致性,包含三个节点的 Active-Active 部署不应使用仲裁节点。因为仲裁节点不存储数据分片,无法支持复制。在节点故障情况下,副本分片将无法用于 Active-Active 同步。
- 当 CPU 负载达到一定水平时,Redis Software 会向运维人员发送警报。
- 如果您的应用程序设计为对 Redis 数据库施加大量负载,请确保数据库的每个分片至少有一个可用核心。
- 如果某些集群节点的 CPU 利用率超过 80%,请考虑将繁忙的资源迁移到负载较低的节点。
- 如果所有集群节点的 CPU 利用率均超过 80%,请强烈考虑添加节点以扩展集群。
- Redis 使用相对大量的缓冲区,用于副本通信、客户端通信、pub/sub 命令等。因此,您应确保每个节点在任何时候都保留 30% 的可用 RAM。
- 如果一个或多个集群节点的 RAM 利用率超过 65%,请考虑将资源迁移到负载较低的节点。
- 如果所有集群节点的可用 RAM 利用率均超过 70%,请强烈考虑添加节点。
- 请勿在 Redis Software 节点上运行其他内存密集型进程。
- 如果集群中没有数据库启用持久化,则持久存储的最低要求为 RAM x 1.1,推荐要求为 RAM x 2。持久存储至关重要,因为 Redis Software 还使用它来维护集群和数据库的健康状况、配置、恢复流程等。
- 仅支持静态 IP 地址,以确保节点在重启后仍属于集群。
容量规划注意事项
通用数据库容量规划
规划数据库容量时需要考虑的因素:
- 数据集大小 – 您的限制应大于数据集大小,以为开销留出空间。
- 数据库吞吐量 – 高吞吐量需要更多分片,从而导致更高的内存限制。
- 模块 – 在数据库中使用模块会消耗更多内存。
- 数据库集群化 – 允许您将数据分散到多个节点上的分片中。
- 数据库复制 – 启用复制会使内存消耗加倍。
Active-Active 数据库容量规划
Active-Active 数据库的额外容量规划因素:
- Active-Active 复制 – 需要常规复制两倍的内存,即每个实例最多可达原始数据大小的两倍(2x)。
- 数据库复制积压 – 用于分片之间的同步。默认情况下,设置为数据库大小的 1%。
- Active-Active 复制积压 – 用于集群之间的同步。默认情况下,设置为数据库大小的 1%。
Active-Active 数据库的逐出策略触发阈值较低,因为它需要传播到所有参与的集群。当任一 Active-Active 实例达到其内存限制的 80% 时,逐出策略开始逐出键。
启用 Auto Tiering 的数据库容量规划
启用 Auto Tiering 的数据库的额外容量规划因素:
- 数据库持久化 – Auto Tiering 使用双重数据库持久化,即主分片和副本分片都持久化到磁盘。这可能会增加一些处理器和网络开销,尤其是在使用网络附加存储的云配置中。