【虹科干货】谈谈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提供亚毫秒级的客户查询,将在线应用程序扩展到数千万用户。通过强大的聚合、过滤、分组和排序等命令,实时创建新的客户观察和摘要视图。

【虹科干货】谈谈Redis Enterprise实时搜索的过人之处的更多相关文章
- 谈谈Redis的SETNX
谈谈Redis的SETNX 发表于2015-09-14 在 Redis 里,所谓 SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果,不 ...
- Lucene.net 实现近实时搜索(NRT)和增量索引
Lucene做站内搜索的时候经常会遇到实时搜索的应用场景,比如用户搜索的功能.实现实时搜索,最普通的做法是,添加新的document之后,调用 IndexWriter 的 Commit 方法把内存中的 ...
- Lucene系列-近实时搜索(1)
近实时搜索(near-real-time)可以搜索IndexWriter还未commit的内容,介于immediate和eventual之间,在数据比较大.更新较频繁的情况下使用.本文主要来介绍下如何 ...
- Solr -- 实时搜索
在solr中,实时搜索有3种方案 ①soft commit,这其实是近实时搜索,不能完全实时. ②RealTimeGet,这是实时,但只支持根据文档ID的查询. ③和第一种类似,只是触发softcom ...
- Everything文件名实时搜索||解决局域网文件共享问题
内容概要:Everything中文版下载地址及使用.用Everything轻松解决局域网文件共享问题.Everything语言设置问题 另:Everything只支持NTFS格式的磁盘(工作原理的缘故 ...
- jmeter 实时搜索结果
因为JMeter 2.13你可以得到实时搜索结果发送到后端通过 后端侦听器 使用潜在的任何后端(JDBC.JMS网络服务,Š) 通过提供一个实现类 AbstractBackendListenerCl ...
- Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词
http://fuxiaopang.gitbooks.io/learnelasticsearch/content/ (中文) 在Elasticsearch中,文档术语一种类型(type),各种各样的 ...
- lucene4.5近实时搜索
近实时搜索就是他能打开一个IndexWriter快速搜索索引变更的内容,而不必关闭writer,或者向writer提交,这个功能是在2.9版本以后引入的,在以前没有这个功能时,必须调用writer的c ...
- 关于lucene的IndexSearcher单实例,对于索引的实时搜索
Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...
- 【Lucene】近实时搜索
近实时搜索:可以使用一个打开的IndexWriter快速搜索索引的变更内容,而不必首先关闭writer,或者向该writer提交:这是2.9版本之后推出的新功能. 代码示例(本例参考<Lucen ...
随机推荐
- 软件设计 day1
Software Design Methodology 软件设计方法学 中国石油大学(华东)2022-2023-3 国际周课程 Advanced software design 张晓东老师邀请在日本广 ...
- pip install lxml 总是失败
- 一文了解 io.LimitedReader类型
1. 引言 io.LimitedReader 提供了一个有限的读取功能,能够手动设置最多从数据源最多读取的字节数.本文我们将从 io.LimitedReader 的基本定义出发,讲述其基本使用和实现原 ...
- 在js中修改less文件内样式
在项目中使用使用进度条时遇到了一点问题,根据需求进度条的百分比需要在条内显示,但是当完成度太低时由于进度条背景和百分比值都是接近的颜色,所以此时无法显示进度值,这个时候需要根据完成度大小来进行判断,动 ...
- 2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和 能被 p 整除。 不允许 将整个数组都移除。 请你返回你需要移除的最短子数组的长度,如果
2023-07-18:给你一个正整数数组 nums,请你移除 最短 子数组(可以为 空), 使得剩余元素的 和 能被 p 整除. 不允许 将整个数组都移除. 请你返回你需要移除的最短子数组的长度,如果 ...
- 基于GPT搭建私有知识库聊天机器人(六)仿chatGPT打字机效果
文章链接: 基于GPT搭建私有知识库聊天机器人(一)实现原理 基于GPT搭建私有知识库聊天机器人(二)环境安装 基于GPT搭建私有知识库聊天机器人(三)向量数据训练 基于GPT搭建私有知识库聊天机器人 ...
- HTML的总结与回顾(思维导图
- 从原理聊JVM(四):JVM中的方法调用原理
1 引言 多态是Java语言极为重要的一个特性,可以说是Java语言动态性的根本,那么线程执行一个方法时到底在内存中经历了什么,JVM又是如何确定方法执行版本的呢? 2 栈帧 JVM中由栈帧存储方法的 ...
- TensorRT 模型加密杂谈
在大多数项目交付场景中,经常需要对部署模型进行加密.模型加密一方面可以防止泄密,一方面可以便于模型跟踪管理,防止混淆. 由于博主使用的部署模型多为TensorRT格式,这里以TensorRT模型为例, ...
- 操作系统实验——系统调用:获取当前进程pid和ppid
目录 一.题目介绍 二.实验思路 三.核心代码 四.遇到的问题及一些解决方法 五.参考文献 PS:博客只是提供一个简要的思路,互相学习. 一.题目介绍 显示当前进程的pid和父进程的pid,主要考察如 ...