ARM 支持

探索 ARM CPU 架构上的 Redis

Redis 版本 4.0 及更高版本支持 ARM 处理器,特别是 Raspberry Pi,作为主要平台。Redis 的每个新版本都在 Pi 环境中经过测试,我们会更新此文档页面,提供有关支持设备和其他有用信息的信息。虽然 Redis 确实可以在 Android 上运行,但在未来,我们期待将我们的测试工作扩展到 Android,使其成为一个正式支持的平台。

我们认为 Redis 非常适合物联网和嵌入式设备,原因如下

  • Redis 的内存占用量和 CPU 需求非常小。它可以在 Raspberry Pi Zero 等小型设备中运行,而不会影响整体性能,使用少量内存,同时为许多用例提供良好的性能。
  • Redis 的数据结构通常是模拟物联网/嵌入式用例的理想方式。一些示例包括累积时间序列数据、接收或排队要执行的命令,或响应发送回远程服务器的命令等等。
  • 在 Redis 内部建模数据对于使必须快速响应的设备或远程服务器处于离线状态的设备做出设备内决策非常有用。
  • Redis 可用作设备中运行的进程之间的通信系统。
  • Redis 的追加式文件存储非常适合 SSD 卡。
  • Redis 5.0 及更高版本中包含的流数据结构专为时间序列应用程序设计,内存开销非常低。

Redis /proc/cpu/对齐要求

ARM 上的 Linux 允许捕获未对齐的访问并将其修复在内核中,以便继续执行有问题的程序,而不是生成 SIGBUS。Redis 4.0 及更高版本已修复以避免任何形式的未对齐访问,因此不需要为此内核配置设置特定值。即使将内核对齐修复设置为禁用,Redis 也应按预期运行。

在 Pi 上构建 Redis

  • 下载 Redis 4.0 或更高版本。
  • 像往常一样使用 make 创建可执行文件。

此过程没有特殊之处。唯一的区别是,默认情况下,Redis 使用 libc 分配器,而不是像其他基于 Linux 的环境那样默认使用 jemalloc。这是因为我们认为,对于嵌入式设备中的小型用例,内存碎片不太可能成为问题。此外,ARM 上的 jemalloc 可能不像 libc 分配器那样经过测试。

性能

Redis 的性能测试是在 Raspberry Pi 3 和 Pi 1 model B 上进行的。这两个 Pi 在性能上的差异相当大。基准测试是通过回环接口进行的,因为大多数用例可能将在设备内部使用 Redis,而不是通过网络使用。以下数字是使用 Redis 4.0 获得的。

Raspberry Pi 3

  • 测试 1:使用 100 万个键(在键之间均匀分布)进行 500 万次写入。没有持久性,没有管道。28,000 次操作/秒。
  • 测试 2:与测试 1 相同,但使用 8 个操作组进行管道:80,000 次操作/秒。
  • 测试 3:与测试 1 相同,但启用 AOF,fsync 1 秒:23,000 次操作/秒
  • 测试 4:与测试 3 相同,但 AOF 重写正在进行:21,000 次操作/秒

Raspberry Pi 1 model B

  • 测试 1:使用 100 万个键(在键之间均匀分布)进行 500 万次写入。没有持久性,没有管道。2,200 次操作/秒。
  • 测试 2:与测试 1 相同,但使用 8 个操作组进行管道:8,500 次操作/秒。
  • 测试 3:与测试 1 相同,但启用 AOF,fsync 1 秒:1,820 次操作/秒
  • 测试 4:与测试 3 相同,但 AOF 重写正在进行:1,000 次操作/秒

上述基准测试指的是简单的 SET/GET 操作。所有 Redis 快速操作(不在线性时间内运行)的性能都类似。但是,排序集可能会显示略慢的数字。

RATE THIS PAGE
Back to top ↑