redis是否支持字符串数据类型的二级索引?
我已经安装了redis服务器以进行检查,但找不到明确的方法来完成此操作。
我想知道如何将数据与seconday密钥一起存储在redis中。
例如,我想存储车辆ID:-注册号,在我的情况下,这将是主键,车辆颜色:-红色,这可能是辅助键,与车辆信息相关的有效载荷是我的价值。现在,我还想查找所有在redis中颜色为红色的有效载荷。
就像我可以在MySql中做的一样
从表中选择*,其中secondarycolumn =“ red”
此外,我想知道在使用主键在Redis中设置值时,如何为它设置辅助索引值。
答案 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。