Redis对二级索引的支持

时间:2019-06-11 10:50:01

标签: redis

redis是否支持字符串数据类型的二级索引?

我已经安装了redis服务器以进行检查,但找不到明确的方法来完成此操作。

我想知道如何将数据与seconday密钥一起存储在redis中。

例如,我想存储车辆ID:-注册号,在我的情况下,这将是主键,车辆颜色:-红色,这可能是辅助键,与车辆信息相关的有效载荷是我的价值。现在,我还想查找所有在redis中颜色为红色的有效载荷。

就像我可以在MySql中做的一样

从表中选择*,其中secondarycolumn =“ red”

此外,我想知道在使用主键在Redis中设置值时,如何为它设置辅助索引值。

3 个答案:

答案 0 :(得分:1)

通过部署RediSearch,您可以在Redis中轻松添加对二级索引的支持。

RediSearch支持定义哈希字段的自动索引,然后使用简单的查询短语轻松查询那些索引。

例如

FT.SEARCH myIdx "@name:Joe @age:[70-90]"

答案 1 :(得分:0)

对于二级索引,您可以使用哈希数据类型。 例如:

要存储:

HSET myindex akash Manuel

获得:

HGET myindex akash

这将返回:Manuel

检查此链接:Redis Hash

答案 2 :(得分:0)

zeeSQL 是一个新颖的 Redis 模块,它准确地引入了二级索引。

这允许开发人员设置他们想要索引的字段,然后让模块完成所有维护索引的簿记工作。

在您的特定情况下,第一步是create a new zeeSQL database

> ZEESQL.CREATE_DB Vehicles
OK

然后你会instruct zeeSQL to keep a secondary index for all the Vehicles and their color

> ZEESQL.INDEX Vehicles NEW PREFIX vehicles:* TABLE Registrations SCHEMA color STRING
OK

然后,您可以使用以下命令在 Redis 哈希中插入新值:

> HMSET vehicles:12344 color red
OK
> HMSET vehicles:11334 color blue
OK

这些值既存储在 Redis 中,也存储在 zeeSQL 二级索引中。

zeeSQL 的二级索引是一个简单的 SQLite 表,然后您可以查询,例如使用 ZEESQL.QUERY command

> ZEESQL.QUERY Vehicles COMMAND "SELECT * FROM Registrations WHERE color = 'red';"

更深的explanation on how to create Redis secondary index using zeeSQL is also available here