换掉ES!Redis官方搜索引擎来了!

RedisSearch:一个基于Redis的搜索引擎模块 RedisSearch是一个基于Redis的搜索引擎模块,它能够为Redis中的数据创建索引,执行复杂的搜索查询,并实现高级功能,如自动完成、分面搜索和排序。RedisSearch是用C语言编写的,与其他开源搜索引擎相比速度极快。它支持多种数据类型和命令,这些特性从根本上改变了使用Redis的可能性3。此外,RedisSearch还提供了全文搜索、索引和聚合功能2。RedisSearch的安装过程包括下载源码并进行配置89。 阅读详情

 RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。

RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了

图片

实现特性

  • 基于文档的多个字段全文索引

  • 高性能增量索引

  • 文档排序(由用户在索引时手动提供)

  • 在子查询之间使用 AND 或 NOT 操作符的复杂布尔查询

  • 可选的查询子句

  • 基于前缀的搜索

  • 支持字段权重设置

  • 自动完成建议(带有模糊前缀建议)

  • 精确的短语搜索

  • 在许多语言中基于词干分析的查询扩展

  • 支持用于查询扩展和评分的自定义函数

  • 将搜索限制到特定的文档字段

  • 数字过滤器和范围

  • 使用 Redis 自己的地理命令进行地理过滤

  • Unicode 支持(需要 UTF-8 字符集)

  • 检索完整的文档内容或只是ID 的检索

  • 支持文档删除和更新与索引垃圾收集

  • 支持部分更新和条件文档更新

对比 Elasticsearch

如下图所示,RediSearch 构建索引的时间为 221 秒,而 Elasticsearch 为 349 秒,快了 58%。

图片

索引构建测试

我们模拟了一个多租户电子商务应用程序,其中每个租户代表一个产品类别并维护自己的索引。对于此基准测试,我们构建了 50K 个索引(或产品),每个索引最多存储 500 个文档(或项目),总共 2500 万个文档。

RediSearch 仅用了 201 秒就构建了索引,平均每秒运行 125K 个索引。然而,Elasticsearch 在 921 个索引后崩溃了,显然它不是为应对这种负载而设计的。

图片

查询性能测试

一旦数据集被索引,我们就使用在专用负载生成器服务器上运行的 32 个客户端启动两个单词的搜索查询。如下图所示,RediSearch 吞吐量达到了 12.5K 操作/秒,而 Elasticsearch 为 3.1K 操作/秒,速度提高了 4 倍。

此外,RediSearch 延迟稍好一些,平均为 8 毫秒,而 Elasticsearch 为 10 毫秒。

安装

安装目前分为源码和docker安装两种方式。

源码安装

git clone https://github.com/RediSearch/RediSearch.git
cd RediSearch # 进入模块目录
make setup
make install

docker安装

note: RediSearch的安装比较复杂原包无法进行编译操作所以我们使用docker安装
docker run -p 6379:6379 redislabs/redisearch:latest

判断是否安装成功

127.0.0.1:0>module list
1) 1) "name"
   2) "ReJSON"
   3) "ver"
   4) "20007"
2) 1) "name"
   2) "search"
   3) "ver"
   4) "20209"

返回数组存在“ft”或 “search”(不同版本),表明 RediSearch 模块已经成功加载。

取代Elasticsearch?从安装、bulk写入到OLAP,看清ES的真实边界 分布式搜索引擎是海量数据检索与日志分析的核心基础设施,而Elasticsearch无疑是其中应用最广的方案之一。它基于Lucene构建,通过分片与副本机制实现高可用与水平扩展,但同时也带来内存占用高、集群运维复杂等挑战。在实际工程中,从Windows下的安装配置到JDK版本对齐,从bulk批量写入的参数调优到以ES实现OLAP分析,每个环节都暗藏性能与稳定性的取舍。与此同时,企业级场景中不可忽视的Kerberos/SPNEGO安全认证、浏览器在线控制台等生态能力,更是选型时的重要考量。本文从这些高频技术痛点 阅读详情

相关推荐

实战:RediSearch 高性能的全文搜索引擎

RediSearch 是一个高性能的全文搜索引擎,它可以作为一个 Redis Module(扩展模块)运行在 Redis 服务器上。 RediSearch 主要特性如下: 基于文档的多个字段全文索引 高性能增量索引 文档排序(由用户在索引时手动提供) 在子查询之间使用 AND 或 NOT 操作符的复杂布尔查询 可选的查询子句 基于前缀的搜索 支持字段权重设置 自动完成建议(带有模糊前缀建议) 精...

磊哥聊Java 4291

RediSearch比Es搜索还快的搜索引擎

RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了。

hello.reader 3377

基于Scrapy+ElasticSearch+Django的全文搜索引擎构建实战

全文搜索引擎是信息检索领域的核心工具,其底层依赖倒排索引实现快速词条定位。与数据库LIKE查询的线性扫描不同,搜索引擎通过分词、索引和相关性评分,能够在海量数据中实现毫秒级响应。在实际工程中,构建一套完整搜索服务需要协调数据采集、索引存储与业务接口三个层次。ElasticSearch作为分布式搜索引擎,提供强大的分词、布尔查询与高亮能力;Scrapy用于抓取网页并清洗结构化数据;Django则负责将检索能力封装为HTTP API。三者组合既适合小型项目快速落地,也能支撑数十万级文档的检索需求。本文从零讲解如

weixin_29913663的博客 275

RediSearch一个媲美es的全文搜索引擎

RediSearch是一个高性能的全文搜索引擎,可作为一个Redis Module 运行在Redis上,是由RedisLabs团队开发的。

yaoyuantao的博客 7264

RediSearch是一个基于Redis的全文搜索引擎

RediSearch是一个基于Redis的全文搜索引擎。它提供了高性能的全文搜索功能,支持复杂的查询和过滤,并且可以无缝地集成到现有的Redis环境中。

Localizing LabVIEW Application to Different Languages

本文探讨了LabVIEW应用程序的多语言本地化实现方案。文章首先分析了LabVIEW对多语言的支持现状,指出其默认仅支持ANSI编码,对Unicode支持有限,且仅适配中英法德日韩六种语言。然后重点介绍了JKISimpleLocalization工具包的使用方法,该工具能导出/导入JSON词典文件,实现界面语言的实时切换。文章还结合实际工程案例,分析了该方案的局限性:部分控件不可翻译、切换速度较慢(33个界面需50秒)、小语种支持不足等。最后提供了完整的应用流程和工具包附件,包括词典文件转换工具和工程案例。

2301_80383260的博客 1410

换掉ES!Redis官方搜索引擎来了,性能炸裂!

RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了。

深入Java世界:探索编程之美与技术深度 2023

揭秘cocos-mcp:如何用AI助手提升CocosCreator游戏开发效率

本文深入介绍了cocos-mcp工具,它作为连接AI助手与CocosCreator编辑器的桥梁,遵循MCP协议,能显著提升游戏开发效率。通过自然语言指令,开发者可让AI直接查询场景结构、批量修改属性或生成上下文代码,将重复操作变为智能调度,实现从“手动操作者”到“指令指挥官”的工作流变革。

weixin_29001683的博客 1053

换掉ES!Redis官方搜索引擎来了,效率大幅提升

数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。之所以会出现这样的效果是因为redisearch对文本进行了分词,其使用的工具是friso相比es的ik还是弱一些前者主要是对中文分词,体积小可移植性强。创建索引不妨想象成创建表结构,表一般基本属性有表名、字段和字段类别等,所以我们可以考虑将索引名代表表名,字段代表字段,属性即表示属性。如下图所示,RediSearch 构建索引的时间为 221 秒,而 Elasticsearch 为 349 秒,快了 58%。

emprere的博客 109

当拿到金葡菌的全基因组测序数据后该怎样进行分析呢

很多做科研实验/做课题报告的科研老师们在拿到全基因组测序数据之后要进行一系列的分析,但同时也担心数据庞大分析缓慢导致进度,也有因为不会编程不知道该如何进行拼接分析的...其实需要质控拼接、MLST分析及菌种鉴定等完全可以自己在平台上进行分析,下面以金葡菌为例进行了质控拼接及菌种鉴定等分析。 网络图片(侵删) 金黄色葡萄球菌(Staphylococcus aureus,S. aureus)也称“金葡菌”,隶属于葡萄球菌 属,是革兰氏阳性菌的代表,为一种常见的食源性致病微生物。 那么在取得了金葡菌全基

GenesClouds的博客 1970

【2025年华为秋招(AI)-11月19日-第一题(100分)- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要: 本文包含15道单选题和5道多选题,涵盖机器学习、深度学习、概率统计和数值计算等多个领域。单选题涉及Transformer的Softmax层作用、最小二乘法拟合、概率密度计算、注意力机制、反向传播问题、ROC曲线用途、截断误差来源等知识点。多选题考察大模型训练技术、BERT/GPT比较、强化学习对齐方法、CNN常见层以及PCA特性等内容。题目设计注重理论与实践结合,既包含数学推导,又关注前沿技术应用,全面检验读者对机器学习核心概念的理解能力。正确答案均附有详细解析,帮助理解相关技术原理。

m0_73659489的博客 147

换掉ES!Redis官方搜索引擎来了!【文末免费领取源码】

RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了基于文档的多个字段全文索引高性能增量索引文档排序(由用户在索引时手动提供)在子查询之间使用 AND 或 NOT 操作符的复杂布尔查询可选的查询子句基于前缀的搜索。

java_121388的博客 605

最新Anaconda3的安装配置及使用教程(详细过程)

最新Anaconda3安装使用Anaconda下载方式一:官网下载方式二:清华镜像下载(推荐)Anaconda安装 Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项 Anaconda + Jupyter 基本上已经是大部分机器学习/数据分析等开发者标配的开发环境, 不多介绍,直接进去正题: Anaconda下载 方式一:官网下载 下载地址传送门: 官网首页:https://www.anaconda.com/ 官网下载页:https://www

HowieXue 薛永浩的博客 34万+

换掉ES? Redis官方搜索引擎,效率大幅提升

RedisSearch = 轻量 + 高性能 + 实时搜索 + 简单部署是中小型搜索系统、微服务、边缘设备非常值得尝试的选择!RediSearch。

程序员诚哥 1022

openclaw通俗入门系列4——智能体工作区

工作区 = 智能体的家,存放它的性格、记忆、技能。默认不是牢笼(可以用沙箱隔离)。建议放到私有 Git 备份,但绝对不要提交密钥!

m0_60605453的博客 463

9.23华为OD机试真题 新系统 - 世界杯徽章换购 (Java/Py/C/C++/Js/Go)

9.23华为OD机试真题 新系统 - 世界杯徽章换购 (Java/Py/C/C++/Js/Go)

算法大师! 1638

换掉ES?Redis官方搜索引擎来了,效率大幅提升

来源:zhuanlan.zhihu.com/p/687400704RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了# 实现...

HollisChuang's Blog 523

实例详解C++程序的五大内存分区

本文详细讲述C++程序在运行时的5大内存分区。 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区。 1、栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区。栈分区是用来存放函数参数及函数局部变量值的内存区,是由编译器在编译时自动分配和释放的。 函数中的参数与函数中的局部变量占用的内存是代码执行到函数(进入函数)是分配的,在............

dvlinker的技术专栏 1万+
上一篇: 【免费源码分享】停车场系统源码!
下一篇: Windows 远程不要再用 mstsc 了,这款开源神器才是YYDS
架构文摘JGWZ
博客等级 码龄5年 8808粉丝 345原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值