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
相关推荐
ShineWinsu2 小时前
对于Redis:缓存的解析
java·redis·缓存·缓存穿透·缓存击穿·缓存雪崩·缓存预热
ly76892 小时前
Elasticsearch 写入链路的 refresh、flush 与 translog 边界:为什么 bulk 吞吐会突然塌陷
大数据·elasticsearch·搜索引擎·translog·写入链路·bulk调优
害人终害己2 小时前
redis修改密码的地方在哪里
数据库·redis·缓存
我不会起名字3222 小时前
Redis 入门(一):Redis 是什么,为什么后端都离不开它
linux·redis·docker·安装·cli
for_ever_love__3 小时前
缓存穿透、击穿、雪崩:三个经典问题与完整解决方案
java·数据库·redis·缓存·哈希算法·布隆过滤器·雪崩
Elasticsearch3 小时前
AWS 自动化根因分析:从 CloudWatch 告警到完成故障诊断,仅需 36 秒
elasticsearch
欢醉4 小时前
基于日志的监控告警:我们是怎么用一套轻量方案把线上问题"盯"住的
elasticsearch·springcloud·日志
hweiyu0012 小时前
Redis命令:HSTRLEN
redis·缓存
字节渡客13 小时前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
前端兰博15 小时前
05-Redis
redis·后端