如何从redis集中检索id的内容

时间:2013-11-18 21:12:29

标签: database tags nosql redis

我正在尝试找出从一组id中检索内容(哈希或字符串)的最合适方法。

redis文档讨论了标记系统here,其中集合用于过滤书籍,但未提及如何获取有关书籍的信息。一旦你过滤了id,你就可以使用带有id列表的mget(),但这只有在你使用String值而不是哈希时才能真正起作用。这也意味着您需要将ID返回到您的应用程序代码并将“id”转换为“book:id”。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以采取多种方法,按照您的建议使用MGET。我做什么一般使用SORT函数...假设我们有3个哈希如下,1个包含那些SET的ID

 HMSET 1 fname a lname b
 HMSET 2 fname c lname d
 HMSET 3 fname e lname f

 SADD fetch_from_set 1
 SADD fetch_from_set 2
 SADD fetch_from_set 3

 SORT fetch_from_set BY NOSORT GET *->fname GET *->lname

 1) "a"
 2) "b"
 3) "c"
 4) "d"
 5) "e"
 6) "f"

因此,通过使用它,您将获得fname和lname的值。当你使用不会对SET进行排序的NOSORT时,它不应该妨碍性能。

另外,使用redis 2.8,你有扫描命令。我没有用它,但你可能想看看它。