如果存储值是散列字段中的列表类型,则HGETALL返回以下响应。
复制步骤如下:
连接到redis-cli,然后:
HSET user1 user2user1 []
LPUSH user2user1 "test1"
LPUSH user2user1 "test2"
LRANGE user2user1 0 -1 #> shows ["test2", "test1"]
HGETALL user1 #> shows "user2user1" "[]"
我原以为HGETALL将返回包含所有元素的所有数组。我已经检查了文档,但我找不到关于HSET存储列表的信息。
2条答案
按热度按时间muk1a3rh1#
您正在使用两个不同的密钥:
您正在推送列表,因此散列保持不变。
此外,哈希是用来存储字符串的,没有您在提供的文档中看到的推送这样的东西。当您设置
HSET user1 user2user1 []
时,您正在将密钥user2user1
设置为字符串[]
。如果
user2user1
是唯一的字符串,这实际上不是问题,因为它使散列在这个“微不足道”的实现中毫无用处。ftf50wuq2#
HSET存储键-值对。不能在关键点之间进行链接。您可能想看看RedisJSON模块,您可以在其中存储数组。