Redis Search系列 - 第五讲 基准测试 - Redis Search VS. ElasticSearch

目录

一、引言

本基准测试参考自Redis官方博客,本文仅做汇总说明,具体原文可参见:
https://redis.io/blog/search-benchmarking-redisearch-vs-elasticsearch/

二、压测明细

测试项 测试说明 Redis Search Elastic Search 结果对比
索引时长 预先导入维基百科的560万份文档(5.3GB), 之后创建索引,记录索引完所有数据的时长 221秒 349秒 RS比ES快58%
搜索性能 32个客户端同时对索引的数据集 执行双字(同时检索两个词)搜索查询, 记录吞吐量和平均耗时 吞吐量:12.5K/秒 平均耗时:8毫秒 吞吐量:3.1K/秒 平均耗时:10毫秒 RS吞吐量是ES的4倍, RS平均耗时稍微优于ES
多租户索引 (海量索引) 同时创建50K个索引, 每个索引存储多达500文档, 总计250万文档 总共花费201秒, 平均每秒索引125K个文档 在921个索引之后崩溃了 RS更适用于海量索引的场景, 而ES无法应付这种负载

具体的测试统计结果如下图:

三、压测环境及相关配置

相关链接如下:

四、总结

基于上文中的压测过程对Redis Search和ElasticSearch进行了基准测试,总结如下:

  • 一个简单的维基百科用例我们发现RedisSearch在索引上快了58%,在索引数据集上执行双词搜索时快了4倍
  • 一个更高级的多租户用例Redis Search在201秒内创建了50k个索引,而ElasticSearch在创建921个索引后崩溃了。

ElasticSearch是一个功能丰富的搜索产品,但是在性能方面,它存在固有的架构缺陷,关于二者间的区别总结如下表:

组件 RediSearch Elasticsearch
搜索引擎 基于现代和优化数据结构的专用引擎 基于Lucene引擎
编程语言 基于C,极度优化 Java
内存技术 本地运行在DRAM和持久内存上 基于磁盘并有缓存选项
协议 优化的RESP(REdis序列化协议) HTTP
相关推荐
踏着七彩祥云的小丑3 小时前
忘记Redis是否安装过时查看
数据库·redis·缓存
☆凡尘清心☆6 小时前
CentOS Stream 9 Redis 7.2.7 源码编译一键安装脚本
linux·运维·redis·centos
麻瓜code8 小时前
【Redis 】数据类型、持久化与过期删除
数据库·redis·缓存
☆凡尘清心☆9 小时前
CentOS Stream 9 编译安装 Redis 7.2.7 完整版详细步骤
linux·redis·centos
晚安code9 小时前
RocketMQ 延迟消息实战:延迟双删策略解决 Redis 缓存一致性
redis·rocketmq
Elasticsearch9 小时前
缩小 AI 差距:下一代知识访问如何为政府解锁任务成果
elasticsearch
山城码农笑松哥9 小时前
Redis 8.8 新特性实操笔记:原生数组、INCREX 限流、XNACK 流处理
redis·笔记·junit
changshuaihua00110 小时前
Redis 详解:Redis 与 MySQL 的区别、数据类型与缓存三大问题
数据库·redis·缓存
Elastic 中国社区官方博客10 小时前
Elasticsearch:搜索教程 - 语义搜索(三)
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
随风M记忆s12 小时前
Redis支持事务吗?了解Redis的持久化机制吗?
数据库·redis·bootstrap