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
相关推荐
怪兽201411 分钟前
什么是 Redis?
java·数据库·redis·缓存·面试
wangmengxxw1 小时前
Redis概述
数据库·redis·缓存
摇滚侠2 小时前
Spring Boot 3零基础教程,Spring Boot 日志的归档与切割,笔记22
spring boot·redis·笔记
爬山算法3 小时前
Redis(64)Redis的Lua脚本有哪些常见场景?
数据库·redis·lua
❀͜͡傀儡师4 小时前
OpenResty + Lua + Redis 鉴权案例,适用于 x86 和 ARM 架构的 Docker 环境。
redis·lua·openresty
补三补四5 小时前
Git 基础操作指南
大数据·git·elasticsearch
Knight_AL5 小时前
Redis 限流解决方案:结合 Lua 脚本、AOP 和自定义注解的实现
redis·spring
Mr Aokey6 小时前
解决Redis数据丢失难题:深入理解RDB与AOF持久化机制
数据库·redis·缓存
Aubrey-J7 小时前
Linux中快速部署Elasticsearch(基础&TLS配置)
linux·服务器·elasticsearch
Elasticsearch7 小时前
Elasticsearch:创建一个定制的 DeepSeek 嵌入推理端点
elasticsearch