Redis拥有很好的声誉,并且广受青睐。开发者们依靠Redis Enterprise处理多个行业的关键用例,涵盖游戏、零售、物联网和旅游应用开发等领域。

那么,开发者如何利用Redis满足他们的数据库需求呢?起初,Redis从开源项目出发,但在过去13年里,随着数字业务的成长,对数据库的需求也在不断提升。这意味着需要更高的可用性、更持久的存储,并且绝不能容忍性能上的滞后。因此,备份启用和即时的故障转移成为必备的特性。

对任何编程团队而言,实现无痛的业务扩展性都是开发中的一大目标。通过使用Redis Enterprise提供的内存中缓存和内存数据库,开发者能在一个单一系统中得到Redis Enterprise的双重支持,进而降低业务的复杂性和延迟。

一切的关键在于速度。包括加快应用交互速度(如快速数据检索和后端服务的缓存负载平衡),以及根据用户需求构建以低延迟为特点的微服务架构(通过Redis的多模态数据库构建)。

接下来,让我们探讨一些知名的Redis用例,以及客户实际的Redis性能示例。

实时决策的快速欺诈检测

https://www.youtube.com/embed/MGFpnvtPZcE

在实时决策中,快速检测欺诈行为至关重要。根据LexisNexis的报告,现在每1美元的欺诈,就使美国的零售和电子商务商家损失3.75美元,较2019年上升了19.8%。

以色列的数字身份公司BioCatch利用其突破性的生物识别追踪技术来识别欺诈者。随着公司业务迅速增长到7000万用户、每秒4万次操作和每月50亿次交易,BioCatch团队需要一种方法来处理显著严峻的数据库扩展问题。

受COVID-19的影响,在线交易数量激增。根据摩根士丹利2022年全球电子商务增长预测报告,电子商务市场规模预计将从目前的3.3万亿美元飙升至2026年的5.4万亿美元。随着这种增长而来的是网络安全危险:数字身份威胁、网络犯罪和客户欺诈。根据Bolster.AI的报告,网络钓鱼和假冒页面在2021年增加了53%。

在构建精细调校的欺诈检测算法时,数据层对时延要求很高,需要在40毫秒内做出响应,以免对客户体验产生负面影响。

数据泄露已成为一种普遍问题。IBM报告称,83%的组织经历过多次数据泄露事件,每次事件的平均成本约为430万美元。美国则连续12年获得数据泄露平均总成本最高国家的头衔。

随着复杂性、体量和威胁的增加,需要更先进的欺诈检测方法来应对欺诈者,并构建更强大的防御。传统数据平台常难以应对现代在线交易的速度、规模和复杂性,难以实时检测和阻止欺诈。

因此,BioCatch转而使用Redis Enterprise,利用其强大的性能、高可用性和无缝可扩展性来应对这些挑战。最初,其考虑将Redis Enterprise作为缓存,但团队很快发现Redis也可以作为一个优秀的NoSQL数据库。

BioCatch利用Redis的特性和多样的数据结构创建了一个单一真实来源数据库,服务于整个组织的关键信息。BioCatch在活跃用户会话期间捕获行为、元数据和API数据。它还创建了用户行为概况子集和预定义的欺诈行为概况。

BioCatch在Microsoft Azure上运行的40个数据库中拥有3PB数据、3亿个键,BioCatch依靠Redis Enterprise为其所有微服务提供数据。自从使用Redis Enterprise以来,BioCatch实现了零停机时间和无操作运维,使其团队能够专注于核心战略项目。

现代游戏体验

根据Mordor Intelligence的数据,2021年全球游戏市场价值达1984亿美元,预计到2027年将增长至3399.5亿美元,这一增长在很大程度上得益于移动游戏的兴起。

移动游戏要取得成功,首先需确保提供良好的用户体验,实时多人游戏里这一点尤为重要,而这对于基础设施也有着很高的要求。必须保证用户能够迅速启动游戏、连接到服务器,并与其他玩家顺畅互动;任何延迟或故障都可能破坏整体游戏体验。此外,游戏体验还包括实时交易,有时还涉及真实货币的使用。

开发者们依赖Redis的低延迟特性来提供高性能和几乎无限的规模扩展,在处理大量高速数据的游戏环境中至关重要。以虚拟体育为例,据估计,到 2028 年,虚拟体育将成为一个价值 480 亿美元的市场。美式橄榄球是美国最受欢迎的虚拟体育运动游戏,拥有 3500 万玩家。但根据印度梦幻体育联合会(FIFS)的一项研究,与印度的虚拟板球联赛游戏相比就相形见绌了,印度的虚拟板球联赛游戏约有 1 亿玩家。

在印度,球队会在赛前公布比赛名单,而在线玩家只有 10-15 分钟的时间更新各自的梦幻球队。这需要接收大量数据,但不应影响客户体验,尤其是在时间紧迫的情况下。

对于游戏开发者而言,提供游戏元素如图形、图片、缩略图和音乐等,需要一个强大的缓存解决方案,以减轻运行在关系数据库(例如MySQL)上的数据存储负担,同时确保极快的响应时间。

缓存能够提供快速响应的用户体验,同时最大程度减少开销。例如,Scopely制作的手机游戏《行尸走肉:求生之路》就依赖Redis Enterprise满足其排行榜、API管理和队列工作负载管理等各种需求。

Scopely需要支持各种数据结构和功能,例如自定义过期、淘汰策略、智能缓存、请求管道、数据持久性和高可用性。这些需求无法通过SQL数据库来满足,除非使用复杂的负载均衡集群。

数据是任何排行榜的核心。只有在数据快速响应的情况下,游戏的排行榜才能以同样快速的速度进行更新。如果您希望满足游戏和玩家的高期望,那么您的排行榜数据库需要满足这些技术要求。

全渠道电子商务框架

在全渠道电子商务框架方面,创建全面的数字化业务是一项艰巨的工作,并且其学习曲线非常陡峭。一个优秀的数字化企业需要一个确保商店页面可用的后台、一个库存管理系统、一个快速缓存用于网站的自动完成功能、一个产品搜索引擎,以及实时创建个性化客户体验的机器学习技术。而且这一切都必须是高性能的;根据 2020 年 YOTTA 的一项研究,90% 的购物者表示,如果网站的响应速度太慢,他们会放弃使用该网站购物。

现代多渠道零售商正转向使用实时库存系统,目的在于优化库存、产量和供应链物流,以改善客户体验和供应链效率。构建和维护这些复杂系统对应用开发者而言是一项艰巨且复杂任务。

在这种情况下,性能变得至关重要。延迟或不准确的库存信息可能导致客户的购物体验下滑和投诉,进而导致购物车的商品被遗弃与取消订单,造成收入损失、成本增加和品牌形象受损。

例如,服装零售商Gap Inc.希望为其电子商务客户提供购物车中每件商品的实时发货信息。该公司面临的延迟问题和不准确库存信息问题导致了糟糕的客户体验,不仅增加了成本,同时还损害了品牌忠诚度。

Gap Inc.的应用开发人员发现,Redis Enterprise的线性可扩展性和大规模下的亚毫秒性能表现对于应对季节性的高峰期(如黑色星期五)提供了极大的帮助。同时,在微服务环境中,快速、灵活的数据模型也可以防止在低峰期时过度配置基础设施。

因此,确保可用性、速度、性能和体验是实现真正无缝体验的关键。

通过实时分析和高速数据摄取开辟新的收入来源

在大数据时代,企业面临的一个关键挑战是如何实时收集、存储和处理大量数据。尽管目前有许多支持快速数据摄取的解决方案,但它们往往过于复杂,并且对于简单需求(如从物联网 IoT 和事件驱动应用程序中实时流式传输数据)显得设计过度。

在此类应用中,快速数据分析对于迅速做出商业决策至关重要。这些用例通常不能容忍数据丢失。然而,在使用传统的关系数据库时,数据丢失确实是一个普遍存在的问题。SQL数据库往往是围绕特定用例构建的,如果在SQL技术栈中引入新的数据结构或数据模型,可能会因为速度减慢、数据摄取效率下降和数据丢失而导致整体性能下降,这往往是因为数据需要被转换以适应数据库选择的模型所造成的。

数据丢失意味着丢失潜在的商机。因此,任何丢失的数据都可能是探索新收入来源的关键。

一个显著的例子是Inovonics的使用案例。Inovonics提供高性能无线传感器网络,在全球部署了超过1000万个设备。在其30年的历史中,Inovonics主要认为自己是一个无线技术提供商。但随着大数据时代的到来,Inovonics意识到其无线设备和传感器收集的独特数据集具有巨大的商业价值。

Inovonics的边缘平台需要一种强大的数据平台能力来确保弹性和性能,同时最小化其运营成本。通过采用Redis Enterprise Cloud(一种完全自动化的数据库即服务(DBaaS)),Inovonics在谷歌云中心化了所有数据,开辟了以洞察力丰富、易于访问而著称的数据分析形式的新产品供应。

Inovonics在其IoT边缘设备上使用Redis Enterprise将数据推送到其网关,然后再从这些网关推送到公司的私有谷歌云平台上。在谷歌云上,应用Redis Enterprise作为数据摄取层,存储来自Inovonics传感器网络每日数百万条消息,并提供一个中心化、聚合的视图以分析数据。Redis Enterprise还存储应用数据模型,以便传入的消息可以与传感器位置等相关信息关联。这种形式不仅提高了数据摄取和分析的效率,还为Inovonics开辟了新的收入来源。

轻松实现业务扩展

COVID-19不仅给实体零售业带来了挑战,还迫使技术供应商重新调整和定制其运营和应用交付模型。为了保持业务不间断运行并实现规模扩展,企业需要正确的工具和技术来扩展基础设施并加速应用响应时间。

以Freshworks为例,这家公司开发基于云的商业软件套件。过去六年中,由于业务的快速增长,公司努力扩展其应用架构和开发运营能力。随着数据库负载的增加,维持性能成为了一大挑战。团队希望能动态扩展集群,同时不影响业务可用性,并减轻其主要MySQL数据库的负担,加速应用响应。

在评估了多种NoSQL如Aerospike和Hazelcast这样的内存数据库后,Freshworks选择了Redis,因为想充分利用其高性能和灵活性。最终,他们采用了Redis Enterprise Cloud,确保开发者基础设施服务的高可用性和无缝数据库体验。

Freshworks将Redis Enterprise用作其MySQL数据库的前端缓存,并利用Redis的高效数据结构(如哈希、列表和有序集合)以及内置的Redis命令来计量进入其Freshdesk软件的API请求。同时,Redis Enterprise也作为后台作业的持久存储,存储在磁盘上。随着公司向微服务架构转移,已经开始将关键工作负载从单体Ruby on Rails网络应用框架中分离出来,其中一个专门用于认证的微服务将Redis Enterprise作为会话存储使用。

此外,Freshworks还利用Redis Enterprise强大的数据结构,如HyperLogLog、位图和集合,作为用户分析的前端数据库。

上述案例研究只是Redis Enterprise作为最佳选择的用例的一小部分例子。但有几个特性值得强调。

缓存

缓存层存储重复请求的数据,以亚毫秒级的响应时间提供,加快加载速度,减轻后端压力。企业级的内存缓存能线性扩展且保持性能上的稳定。快速的数据检索等于用户更快的响应时间。快速缓存还可以平衡后端服务负载,允许现有硬件以最佳性能运行。

(注意:一些Redis服务提供商,如Amazon ElastiCache,仅支持将Redis作为缓存而非作为主数据库。)

聊天、消息和队列

在微服务架构中,强大的消息解决方案至关重要。这些各种服务集合需要在分布式环境中相互保持通信。消息协议如Pub/Sub对实现实时广播通知,对提供最小延迟和高吞吐量不可或缺。排序集和和哈希为聊天室、社交媒体动态、实时评论流和服务器间通信提供了支持。另一种数据结构,列表,则可帮助创建轻量级的消息队列。

会话存储

会话管理依赖于个性化,应用程序需要处理大量数据,同时缓存和检索用户档案和会话元数据。通过可靠的会话存储,可以在亚毫秒级响应时间内扩展到数十亿个字段-值对,并处理意外的流量峰值。

会话存储管理会话数据,并通过缓存ID和令牌来提高可用性、身份验证、用户档案和日志记录性能。其减少了对主数据库和计算资源的负载,最终节省了资金。

地理空间索引

地理空间数据整合了基于位置的功能,例如估算距离、到达时间和附近推荐。地理空间索引允许使用命令(如GEOADD、GEODIST、GEOHASH等)存储和搜索坐标。

快速、强大,且易用。您还有哪些期待

开发人员必须尽力提供具有吸引力的新功能的应用程序更新。这让他们忙得不可开交,因为应用程序的迭代往往很难满足用户群体的期望。

为了加快产品上市速度,开发团队必须实现亚毫秒级响应时间性能,并找到简单的方法来应用多种数据模型,以获得他们构建软件的自由。

Redis Enterprise提供快速、强大且易于使用的解决方案,帮助开发团队快速开发具有吸引力的新应用,解锁亚毫秒响应时间的性能,并简化应用多种数据模型的过程。当您开始构建您的下一个应用时,您会选择哪种方式?了解这些使用Redis的经典案例,并以极致的效率和性能来构建你自己的强大应用程序。