我使用redis存储某些实体的标签。数据示例:
+-------------+--------------------------------+
| key | value |
+-------------+--------------------------------+
| book:1:tags | [python, ruby, rails] |
+-------------+--------------------------------+
| book:2:tags | [fiction, fantasy] |
+-------------+--------------------------------+
| book:3:tags | [fiction, adventure] |
+-------------+--------------------------------+
如何找到所有带有特定标签的图书,即所有标有fiction
的图书?
答案 0 :(得分:5)
您必须自己维护反向索引。除了您发布的那些键,您还应该创建反向引用。
tag:python => [1]
tag:ruby => [1]
tag:rails => [1]
tag:fiction => [2, 3]
tag:fantasy => [2]
tag:adventure => [3]
然后做你想做的事是微不足道的。但也许你应该考虑使用另一种工具来完成这项工作。例如,MongoDB可以有效地索引和查询数组。