这篇文章是深入探讨 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 团队正在积极征求贡献。