我想用redis中的books info创建哈希,例如: HMSET books key "83-7197-669-0" title "Access. DB desing" price 79.0 publisher "Helion" year 2002 HMSET books key "83-7197-786-7" title "Access XP" price 65.0 publisher "Helion" year 2003
那我只想找一本带钥匙的书 83-7197-669-0
,我试过:
HGET books key "83-7197-669-0" (error) ERR wrong number of arguments for 'hget' command
2)HGETALL books 1) "key" 2) "83-7197-786-7" 3) "title" 4) "Access XP" 5) "price" 6) "65.0" 7) "publisher" 8) "Helion" 9) "year" 10) "2003"
我不知道为什么,但我只看到了第二本书。。
接下来,我想找一本定价的书,但没有成功。我甚至不知道该尝试什么。有什么想法吗?
2条答案
按热度按时间fcipmucu1#
正如您可能看到的,您拥有所有这些属性,如
"key"
以及"title"
在你的redis哈希里。解决方案很简单,只需省略键并以序列化形式存储其余数据。redis基本上是类固醇的键值存储,所以将第一个命令
HMSET "83-7197-669-0" title <title> price <price> ...
根据您的用例,您还可以使用hset
,把所有东西都存储在books
并将值编码为单个序列化条目。如果您正在寻找通过多个键访问redis的方法,那么您很可能使用了错误的工具。关系数据存储在这方面更好;redis仍然是一个高速的键值存储库,里面有一些额外的东西。
nwo49xxi2#
redis中的hset就像一张Map中的Map,您示例中的书籍是外部Map的键,其中
key, title, price
,其他字段类似于内部Map的键。要按键取书,你可以设置
key
作为hget的名称和使用hgetkey
用钥匙取书。应该返回hset的所有字段。我希望这能给你一个好的开始redis哈希。