【虹科干货】谈谈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 ...
随机推荐
- UI自动化打开游览器失败 elenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 90
原因是: 驱动和当前游览器版本不一致 查看游览器版本: 下载对应驱动: http://npm.taobao.org/mirrors/chromedriver/ 在自己电脑上 找到原来驱动的存放位置 将 ...
- Centos7安装JDK1.8(详解版)
一.检查并卸载OpenJDK 1.卸载centos原本自带的openjdk 运行命令如下: rpm -qa | grep java 2.然后通过 rpm -e --nodeps 后面跟系统自 ...
- shell 编程变量使用心得
类型 示例 用途 大写的变量名 IP 表示常量,比如,用来记录输入和输出文件名 小写变量名 mac 一般变量 左边下划线 _mac 临时的中间变量,只引用一次的变量 右边下划线 tmpfile_ 临时 ...
- zabbix 添加 zabbix_agentd 服务
创建服务文件 # /usr/lib/systemd/system/zabbix-agent.service [Unit] Description=Zabbix Agent After=syslog.t ...
- Diffusers 一岁啦 !
十分高兴 Diffusers 迎来它的一岁生日!这是令人激动的一年,感谢社区和开源贡献者,我们对我们的工作感到十分骄傲和自豪.去年,文本到图像的模型,如 DALL-E 2, Imagen, 和 Sta ...
- 何为DDD
从这一刻开始,请大家忘记自己是一名技术人员,用业务的角度来思考问题. 1.什么是DDD DDD(Domain-driven design,领域驱动设计),是一个很好的应用于微服务架构的方法论 DDD要 ...
- deepin install mariadb
输入指令: sudo apt-get install mariadb-server mariadb-client
- Jmeter使用jp@gc-stepping thread group做性能测试
扩展插件 下载地址:http://jmeter-plugins.org/downloads/all 将JMeterPlugins-Standard.jar复制到jmeter的lib目录下的ext目录下 ...
- 【解惑】介绍三大数据库的with语句的写法及使用场景
WITH 子句通常被称为 "Common Table Expressions"(CTE),俗称内存临时表,当使用 WITH 语句时,应注意具体的数据库版本和支持情况.以下是对 My ...
- opencv-python 车牌检测和识别
首先利用级联分类器把车牌位置找到取出来,然后用ocr进行车牌识别. 1 OCR之Tesseract安装 Tesseract安装可以参考这个链接: https://blog.csdn.net/m0_53 ...