简单地说,我们现在是Redis

了解更多

引入RediSearch 2.0

RediSearch 2.0旨在改善开发人员的体验,并成为RediSearch最具伸缩性的版本。另外:它比以前的版本快2.4倍。



回到博客

RediSearch是Redis的一个具有全文搜索功能的实时二级索引,是Redis最成熟、功能最丰富的模块之一。它也变得越来越受欢迎——在过去的几个月里,reresearch Docker的拉力已经跃升了500%!这种不断飙升的受欢迎程度导致客户提出了各种各样有趣的用例,从实时库存管理短暂的搜索

为了延续这一势头,我们现在推出了RediSearch 2.0的公众预览版,旨在改善开发人员体验reresearch最可扩展的版本.RediSearch 2.0支持Redisactive - active geo-distribution技术,是可伸缩的没有停机时间,而且包括复述在闪光支持(目前在私人预览)。为了在不负面影响性能的情况下达到这些目标,我们为redisear2.0创建了一个全新的架构——它确实有效:RediSearch 2.0的速度是2.4倍比RediSearch 1.6。

RediSearch 2.0的新架构

在你的Redis数据库中拥有一个丰富的查询和聚合引擎,可以提供各种各样的新用例,远远超出缓存的范围。RediSearch让你使用Redis作为你的主要数据库的情况下,你需要访问数据使用复杂的查询。更棒的是,它保持了Redis世界级的速度、可靠性和可伸缩性,并且不需要你增加代码的复杂性来更新和索引数据。

对于RediSearch 2.0,我们重新构建了索引与数据保持同步的方式。现在,RediSearch不再需要通过索引(使用FT.ADD命令)写入数据,而是跟踪以散列形式写入的数据,并同步对其进行索引。这种重新架构伴随着API的一些变化,我们在之前的文章中讨论过reresearch2.0迎来了第一个里程碑

这种新架构带来了两个主要好处。首先,现在比以往任何时候都更容易在现有数据上创建二级索引。你可以添加RediSearch到你现有的Redis数据库,创建一个索引,并开始查询它,而不必迁移数据或使用新命令将数据添加到索引。这大大降低了新的RediSearch用户的学习曲线,并允许您在现有的Redis数据库上创建索引,甚至不需要重新启动它们。

除了实现索引数据的新方法外,我们还从键空间中去掉了索引。这使Redis企业的万博体育彩active - active技术,基于无冲突复制数据类型(CRDTs).合并两个反向索引时不产生冲突是很困难的,但Redis已经做到了一个证明CRDTs实现散列。第二大好处是这个新架构使reresearch2.0更具可伸缩性.因为reresearch现在遵循哈希值,索引被移出了键空间,你现在可以在Active-Active地理分布数据库中运行reresearch。

Active-Active技术无缝解决文档之间的冲突,reresearch相应更新本地索引。

属性中的复制集中的所有数据库将复制一个文档强最终一致方式.在每个副本中,RediSearch将简单地跟踪哈希上的所有更新,这意味着所有索引都是强最终一致的。

OSS集群支持开源Redis

我们不想限制Redis企业用户的可扩展性,所以我们增加了使用开源Redis集群API在多个分片上扩展单个索引的支持。万博体育彩以前,单个reresearch索引及其文档必须驻留在单个分片上。这意味着数据集大小和吞吐量的OSS Redis是绑定到什么一个单一的Redis进程可以处理。万博体育彩Redis Enterprise提供了在集群数据库中分发文档并在查询时聚合结果的能力。此扇出和聚合由称为“协调器”的组件处理,该组件现在也是公开的Redis Source Available License所以它可以和开源的Redis集群以及Redis Enterprise一起工作。万博体育彩其结果是reresearch的可伸缩性最强的版本。

给我看看数字!

为了评估reresearch2.0的摄入性能,我们扩展了全文搜索基准(FTSB)套件公开的纽约市出租车数据集.由于该数据集具有丰富的数据类型集(文本、标记、地理和数字)和大量文档,因此该数据集可在整个行业中使用。

这个基准测试的重点是写性能,使用纽约市黄色出租车的出行记录数据。对于这个基准测试,我们使用了2015年1月的数据集,它加载了超过1200万个文档,每个文档的平均大小为500字节。有关完整的基准测试规范,请参阅FTSB GitHub上

所有基准测试变体都在Amazon Web Services实例上运行,通过我们的基准测试基础设施提供。测试是在带有15个分片的3节点集群上执行的,reresearchenterprise版本为1.6和2.0。基准测试客户机和包含启用了reresearch的数据库的3个节点都运行在单独的c5.9xlarge实例上。

考虑到RediSearch 2.0有能力跟随hash的变化在Redis和自动索引他们,我们已经添加了变体FT.ADDHSET命令。为了使升级更容易,我们将现在已弃用的FT.ADD命令重新映射到redisear2.0中的HSET命令。下面的两个图表显示了RediSearch 1.6和RediSearch 2.0的总体摄食率和延迟,而延迟保持在毫秒以下。

reresearch一直都是快速的,但是通过这种架构上的改变,我们已经从每秒96K个文档索引到每秒132K个文档索引,总的p50摄入延迟为0.4ms,极大地提高了写伸缩性。

您不仅可以从吞吐量的提高中获益,而且每次摄入也会变得更快。除了由于架构变化带来的整体吸收改进外,你现在还可以依赖OSS Redis Cluster API功能来线性扩展搜索数据库的吸收。

结合吞吐量和延迟改进,RediSearch 2.0提供高达2.4倍的加速与RediSearch 1.6相比。

reresearch2.0的下一步是什么

综上所述,RediSearch 2.0是我们发布过的所有Redis用户最快、最可扩展的版本。此外,redisear2.0的新架构提高了开发者在创建现有数据索引时的无缝体验,并消除了将你的Redis数据迁移到另一个支持RediSearch的数据库的需要。这个新的体系结构允许reresearch跟踪和自动索引其他数据结构,比如Streams或string。在即将发布的版本中,它将允许您使用附加的数据结构,例如嵌套的数据结构RedisJSON

我们计划继续添加更多的功能,以进一步增强开发人员的体验。接下来,寻找一个新的命令,它允许您分析搜索查询,以便更好地理解在查询执行期间哪里会出现性能瓶颈。

准备好开始了吗?查看Tug Grall的博客…开始使用reresearch2.0!然后按照下面的步骤来做教程在GitHub上或创建一个免费数据库万博体育彩Redis企业云要素.(请注意,RediSearch 2.0的公开预览版在两个Redis企业云基础区域可用:孟买和俄勒冈。)万博体育彩

Baidu