【虹科干货】谈谈Redis Enterprise实时搜索的过人之处
我们都知道,用户在使用应用程序时候,对于速度有着越来越高的要求,真可谓是“一秒也等不及”。而开发团队又该怎样来满足这种对于实时性的期望呢?
文章速览:
- Redis Enterprise实时搜索的应用场景
- 利用索引为开发人员带来更好的体验
- Redis Enterprise实时搜索的优势
- 低延迟搜索的3种常见应用案例
现代应用程序的构建中,开发者和架构师更青睐于实时搜索,其能提供用户满意的性能。Redis Enterprise通过对各类查询如全文搜索、复杂过滤表达式、辅助键查找、数字或地理范围查找、聚合函数和搜索结果排序等建立指标以快速提供实时的结果。网络安全、欺诈检测、金融服务、电子商务、游戏和许多其他领域应用程序的构建都依赖Redis Enterprise来实现规模化的即时搜索结果。
一、Redis Enrerprise实时搜索如何解决应用程序常见的挑战
1.挑战:网络延迟,通常是实时搜索应用程序所面临的主要挑战,尤其是当数据需要远距离传输时。
解决方案:Redis Enterprise可以在云端和本地部署运行,提供数据本地化的能力,以确保在全球范围内都能提供低延迟的搜索结果。
2.挑战:要做到快速搜索,需要具备快速读取索引数据的能力。传统的基于磁盘的数据库,无法实现快速读取海量数据,无法在能保持延迟低于毫秒级的同时,还能将其扩展到支持每秒数百万次写入的速度。
解决方案:RedisEnterprise基于内存方式运行,具有快速的读取性能和可扩展性。
3.挑战:现代的软件应用程序通常需要实时、且立即可使用的即时数据。缓慢的搜索引擎会迫使开发人员在使用数据之前进行预计算、预聚合或预操作等繁琐的过程。经过一系列繁琐的处理后,数据会失去其即时性,变为过时数据,失去准确性和可信度。过时的数据会使运营或实时分析失效。
解决方案:Redis可以在亚毫秒级的时间内返回搜索结果,保证数据的新鲜度,助力应用程序获得更准确的结果。
4.挑战:数据的并发能力允许多个用户对单个数据库在同一时刻进行读写操作。业务上,一些常见的分析用例要求每秒1,000多个查询(QPS)的性能。另一方面,为了避免影响用户的体验,对于开发者而言,应用程序开发的指标之一就在于为终端用户提供低于200毫秒延迟的服务。
解决方案:这些对并发性能的实际需求,基于磁盘的搜索引擎则无法提供足够的并发性能,而这正是Redis Enterprise内存数据库支持实时搜索的极佳用例。Redis Enterprise作为内存数据库,能支持跨多个数据库分片,同时在低延迟响应的前提下,提供数据库的搜索和查询规模拓展能力,进而提供数据库的高并发性和数据保护支持。
二、Redis索引为开发人员带来更好的体验
Redis二级索引允许开发人员对任何字段创建索引,创建符合业务需要的数据视图,提供更准确的搜索结果。无需额外修改应用程序代码,二级索引还可以轻松创建并管理复杂的多字段查询。只要Redis索引被创建,就能保持对插入和修改数据的自动更新,不需要手动介入。
- Sorted Sets无需额外的管理或分配,便能提供快速的查询支持。
- 不需要修改应用程序代码,即可创建并使用Redis Enterprise数据库的二级索引。
- 全局自动索引功能确保索引的数据保持最新。
- 自动维护索引,并允许您在集群数据库中跨数据结构对辅助键进行查询。
- 不仅是键本身,还为值提供多种索引策略,包括全文搜索、地理位置索引、数字,或是标签索引等。
三、Redis Enterprise搜索的优势
1.提升客户体验:及时且准确的搜索结果,可以保持客户的参与和忠诚。实时搜索、自动建议和分面搜索等强大的搜索特性,帮助用户快速找到他们所需的内容。
2.更精准的业务智能:为了优化流程和服务,Redis能够为实时分析提供即时的搜索结果。此外,Redis还能够在高读取和高写入的场景中,保持高性能地处理常量数据和可变数据。
3.更低的成本:借助使用内存数据库技术和内置搜索引擎,能够以更少的基础设施花费来实现更多功能。
4.支持微服务架构:Redis Enterprise低延迟的搜索结果还支持微服务架构。Redis Enterprise会避免产生任何额外的延迟,进而避免任何会对用户体验不利的影响。
5.可拓展性支持:Redis Enterprise支持线性扩展数据摄入,将数据库索引分布到不同分片和地理位置,以支持实时搜索数千万个键的用户。
6.地理分布式部署:Redis多活地理分布式部署是一种数据弹性架构,其可以在多个数据中心分布存储数据库信息,这些信息存储在各自的独立的,并且不位于同一个地区的集群和节点上。无论复制区域的数量和区域之间的距离如何,多活地理分布式部署都能确保面向本地提供低延迟的读写操作。
四、低延迟搜索的应用案例
有三种常见的应用用例必须使用低延迟搜索:实时分析、主数据表查找、360度客户视图。
1.实时分析
传统数据库对于实时分析和业务智能而言,其提供数据的速度太慢了。尤其当数据不断变化时,传统数据库的查询显得过于缓慢且无法扩展。为了进行准确的实时分析,需要数据库提供一致且高性能的搜索体验。Redis Enterprise可以作为内存数据平台,可以将孤立的源数据库整合,并根据这些源数据库提供实时的指标,以回答诸如“过去10分钟内最畅销的产品是什么?”的实时分析问题。
2.主数据表查找
许多应用程序,例如电子商务应用程序,需要对主数据表进行重复且高速的查找。例如,产品主数据表可能包含每个产品的ID、产品名称、描述和价格。当用户购物时,他们同时访问产品主数据表,计算其购物车的价值。随着表格的增长,搜索过程往往会变得缓慢,客户体验将受到影响。Redis Enterprise通过扩展实时搜索能力,以轻松消除这些常见的应用程序瓶颈。Redis Enterprise支持存储数千万个唯一标识符,并通过直观且快速的自动建议和全文搜索功能提升客户体验。
3.360度客户全景图
提供实时客户服务是一项颇具挑战性的任务。在等待使用客户服务时,请求经常会处于等待的过程中。客户服务团队和360度客户视图应用程序需要实时获取有关客户的信息。Redis Enterprise提供亚毫秒级的客户查询,将在线应用程序扩展到数千万用户。通过强大的聚合、过滤、分组和排序等命令,实时创建新的客户观察和摘要视图。