想象一下去游乐园玩,吃了大量的四种主要游乐园食物(当然是玉米热狗、漏斗蛋糕、刨冰和棉花糖),然后在旋转飞椅上疯狂旋转。你刚刚吃下食物的数量、种类(以及敢不敢说速度?)很可能会让你的胃不堪重负,引起不适,迫使其放慢速度并重新调整,以应对当天的放纵。
但你的软件栈不允许有放慢速度的奢侈,哪怕是亚毫秒的一小部分时间也不行;它需要处理投给它的任何数据,而无需费力或服用胃药。 快速数据摄取和处理 是大数据用例日益普遍的需求,内部利益相关者和客户都期望(并依赖于)它所实现的实时决策。
收集、存储和处理大量高多样性、高速度的数据是一项带来多个复杂设计挑战的任务——尤其是在物联网、电子商务、安全、通信、娱乐、金融和零售等领域。
而这正是 Redis 的真正优势所在。它以一种其他快速数据摄取解决方案无法比拟的轻松方式应对这些挑战,而其他解决方案往往复杂且对于简单的需求来说过度设计。
事实上,在 TechValidate 对 Redis 客户进行的一项独立调查中,74% 的受访者表示将 Redis 用于消息传递和数据摄取。
我们概述了一些突出特点,这些特点使得 Redis 非常适合消息传递、数据流处理和快速数据摄取。
在性能方面,Redis 基准测试表明,在一个或两个适中规模的商用云实例上,它可以处理每秒超过一百万次的读写操作,延迟低于亚毫秒。这使得 Redis 成为市场上资源效率最高的 NoSQL 数据库。
Redis 提供了多种数据结构,如列表 (Lists)、集合 (Sets)、有序集合 (Sorted Sets) 和哈希 (Hashes),这些结构提供了简单而多功能的数据处理能力,从而有效地结合了高速数据摄取和实时分析。通过利用专门构建以支持当前目标(例如时间序列分析、空间分析、机器学习等)的数据结构,分析操作获得了巨大的性能提升,因为这些数据结构不仅提供了更优雅地存储可变结构数据的机制,还内置了可以在数据存储的内存中直接执行复杂数据库内部分析的操作。
另一个性能提升来自于 Redis 的发布/订阅能力,这使得它能够在地理位置分散的数据摄取节点之间充当高效的消息代理。数据生成应用以所需格式将流数据发布到频道,而消费应用则订阅与其相关的频道,在消息发布时异步接收。
对于以 TB 为单位的数据集,Redis Enterprise 的 Redis 版本进行了增强,可以在 RAM 和闪存的组合上运行。 能够同时将键和热数据存储在 RAM 中,将冷数据存储在更经济的闪存中,这在不牺牲响应速度的情况下大幅降低了运营成本。 对于正在快速成为常态的更大规模数据集,这是在大数据规模下提供内存性能最经济的方式。
我们最近发布了一份白皮书,题为 Redis for Fast Data Ingest。它概述了在设计快速数据摄取解决方案时遇到的挑战,以及 Redis 如何轻松应对这些挑战。对于喜欢深入研究的读者,白皮书提供了一个快速数据摄取场景示例供您参考,以及三种不同的实现方法(附带代码!),来完成该场景。
随着您组织的大数据需求增长,请记住,实现对大容量、高多样性、高速度数据的快速摄取和实时处理,并不一定让您头痛—或让您的系统“消化不良”。只需使用 Redis Enterprise。