ARM 支持

探索 ARM CPU 架构上的 Redis

Redis 堆栈 Redis 社区版

Redis 版本 4.0 及更高版本通常支持 ARM 处理器,并且 具体来说,Raspberry Pi 作为主平台。Redis 的每个新版本都在 Pi 上进行了测试 环境中,并且我们会更新此文档页面,其中包含有关受支持设备的信息和其他有用信息。虽然 Redis 确实可以在 Android 上运行,但将来我们期待将我们的测试工作扩展到 Android 也使其成为官方支持的平台。

我们相信 Redis 是 IoT 和嵌入式设备的理想选择 原因:

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

Redis /proc/cpu/alignment 要求

Linux on ARM 允许捕获未对齐的访问并将其修复在内核中 为了继续执行有问题的程序,而不是 生成SIGBUS.Redis 4.0 及更高版本是固定的,以避免任何类型的 的 unaligned 访问权限,因此无需为此设置特定值 kernel 配置。即使内核对齐修复设置为禁用,Redis 也应该 按预期运行。

在 Pi 中构建 Redis

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

这个过程没有什么特别的。唯一的区别是 default,Redis 使用libcallocator 而不是默认为jemalloc就像在其他基于 Linux 的环境中一样。这是因为我们相信 对于嵌入式设备内部的小型用例,内存碎片 不太可能成为问题。此外jemalloc在 ARM 上可能与测试 作为libc分配器。

性能

Redis 的性能测试是在 Raspberry Pi 3 和 Pi 1 模型 B 上进行的。两个 Pi 在交付性能方面的差异相当大。基准测试是通过 loopback 接口,因为大多数用例可能会从内部使用 Redis 设备,而不是通过网络。以下数字是使用 Redis 4.0 的版本。

树莓派 3:

  • 测试 1:使用 100 万个键进行 500 万次写入(在键之间均匀分布)。没有坚持,没有流水线。28000 次作/秒
  • 测试 2:与测试 1 类似,但使用 8 个作组的流水线:80,000 次作/秒。
  • 测试 3:与测试 1 类似,但启用了 AOF,fsync 1 秒:23000 次作/秒
  • 测试 4:与测试 3 类似,但正在进行 AOF 重写:21000 次作/秒

Raspberry Pi 1 型号 B:

  • 测试 1:使用 100 万个键进行 500 万次写入(在键之间均匀分布)。没有坚持,没有流水线。2,200 次作/秒
  • 测试 2:与测试 1 类似,但使用 8 个作组的流水线:8500 次作/秒。
  • 测试 3:与测试 1 类似,但启用了 AOF,fsync 1 秒:1820 次作/秒
  • 测试 4:与测试 3 类似,但正在进行 AOF 重写:1000 次作/秒

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

为本页评分
返回顶部 ↑