如何在redis缓存中使用多键或二级索引?

kr98yfug  于 2021-06-10  发布在  Redis
关注(0)|答案(2)|浏览(1399)

我需要在redis缓存中使用两个键值,这样我就可以基于一个键进行检索?请帮忙,
这两个键都是字符串,值将是一个实体,其中也将存在键值。
例子:
:<compressed\u json>
json结构:

result{
         a{ 
           key: <something>
           b:<something>
           c:<something>
    } 
   }

我需要从redis获取值,或者使用key,或者使用'b',但是我不能同时获得这两个值。

d8tt03nd

d8tt03nd1#

另一个解决方案是部署redisql,它将使您能够访问功能齐全的sql数据库,您可以在其中查询两个键。

vcudknz3

vcudknz32#

为了实现这个特性,它需要构建一个简单的倒排索引,如下图所示,将数据存储为三部分。

带倒排索引的索引数据

为两个键构建两个索引,索引只是一个redis字符串类型,键使用index:{key value}这样的格式,值存储在文档的键即json字符串中。
json字符串也存储为redis string类型,key为doc:{id},可以动态生成id,如uuid/guid。

按索引(键1或键n)获取文档

将值合并到索引:{key-value}格式
使用组合字符串键调用redis检索doc键
使用doc键调用redis获取单据体。

相关问题