我正在尝试找出从一组id中检索内容(哈希或字符串)的最合适方法。
redis文档讨论了标记系统here,其中集合用于过滤书籍,但未提及如何获取有关书籍的信息。一旦你过滤了id,你就可以使用带有id列表的mget(),但这只有在你使用String值而不是哈希时才能真正起作用。这也意味着您需要将ID返回到您的应用程序代码并将“id”转换为“book:id”。有更好的方法吗?
答案 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,你有扫描命令。我没有用它,但你可能想看看它。