Redis根据设定值查找密钥

时间:2012-07-20 18:37:30

标签: redis

我使用redis存储某些实体的标签。数据示例:

+-------------+--------------------------------+
|     key     |             value              |
+-------------+--------------------------------+
| book:1:tags |     [python, ruby, rails]      |
+-------------+--------------------------------+
| book:2:tags |     [fiction, fantasy]         |
+-------------+--------------------------------+
| book:3:tags |     [fiction, adventure]       |
+-------------+--------------------------------+

如何找到所有带有特定标签的图书,即所有标有fiction的图书?

1 个答案:

答案 0 :(得分:5)

您必须自己维护反向索引。除了您发布的那些键,您还应该创建反向引用。

tag:python => [1]
tag:ruby => [1]
tag:rails => [1]

tag:fiction => [2, 3]
tag:fantasy => [2]
tag:adventure => [3]

然后做你想做的事是微不足道的。但也许你应该考虑使用另一种工具来完成这项工作。例如,MongoDB可以有效地索引和查询数组。

相关问题