这篇文章是深入探讨Redis-ML模块功能的系列文章的最后一篇。该系列文章的第一篇文章可以在这里找到。
在之前的文章中,我们学习了如何使用Redis和scikit-learn构建实时分类和回归引擎,如何使用线性回归预测房价以及如何使用决策树预测生存率。我们甚至稍微绕道了 R,以演示 ML 工具包的独立性,但我们没有关注的一个问题是“为什么?”为什么我们要将 Redis 用于实时预测引擎?
如果我们看一下机器学习工具包的格局,大多数工具包都专注于 ML 的学习方面,而将构建预测引擎的问题留给了读者。这就是 Redis 填补空白的地方;开发人员不必尝试构建自定义服务器,而是可以依赖熟悉且功能齐全的数据存储来构建其应用程序。简单而强大的数据管理、降低的开销以及最小的延迟只是使用 Redis 构建机器学习模型的三个主要优势。
数据管理功能
虽然 Redis-ML 数据类型(如线性回归对象和随机森林)与内置的 4.0 类型(如集合和哈希)大不相同,但重要的是要了解 Redis-ML 密钥仍然是 Redis 密钥。所有用于管理、持久化和复制密钥的 Redis 功能都与 Redis-ML 密钥一样有效。
Redis 已经为开发人员提供了用于存储数据的受管理的密钥空间。可以使用简单的 SET 命令将其他统计模型添加到应用程序中,使开发人员可以为需要重新处理数据的用例维护多个模型版本。Redis-ML 密钥(与任何 Redis 密钥一样)可以使用Redis 密钥管理命令进行维护。
要扩展基于 Redis 的预测引擎,您只需部署更多 Redis 节点并创建复制拓扑,其中包含一个主节点和多个副本节点。对统计模型的更新将写入主节点并自动分发到副本,因此您无需编写任何其他代码(就像在自定义应用程序中一样)。
降低运营复杂性
Redis 已经是大多数公司技术堆栈的一部分。您的运营人员已经了解如何扩展、管理和监控 Redis 实例,他们甚至可能已经自动化了许多部署任务。因此,将 Redis 用于 ML 需求所需的开销远远小于为新的自建服务添加运营支持,而这种服务需要一段时间才能实施并解决运营问题。
快速吞吐量
最后,Redis 将所有数据都保存在内存中,这使其速度非常快。它还拥有经过高度调整和优化的网络堆栈以及复杂的内存和缓冲区管理,所有这些都需要复制才能让自建服务达到 Redis 的性能。在基准测试中,我们发现 Redis 在预测操作中的速度比自建 Java 应用程序快十三倍。
Redis 是加速现有数据管道性能的好方法,借助 Redis-ML 模块,您可以加速预测操作。希望您喜欢这个关于 Redis-ML 模块的系列文章。如果您仍然感到好奇并想了解更多信息,请记住该模块是开源软件,您可以在Github上找到源代码。Redis-ML 团队积极寻求贡献。