我们以这种方式使用 REPL redis-cli 在 redis 中创建了 3 个哈希:
hmset redishop:items:Articulo1 artist "Martin Wessely" price 12.99 name "Handcrafted Trees Mug"
hmset redishop:items:Articulo2 artist "Martin Wessely" price 13.99 name "Handcrafted Trees Mug"
hmset redishop:items:Articulo3 artist "Martin Wessely" price 14.99 name "Handcrafted Trees Mug"
我检查了在 redis 中创建的结构是否正常,这些都在那里:
hgetall redishop:items:Articulo3
现在我们以这种方式将哈希添加到集合中:
sadd redishop:list-all redishop:items:Articulo3
sadd redishop:list-all redishop:items:Articulo2
sadd redishop:list-all redishop:items:Articulo1
现在我们正在使用命令 SORT:
SORT redishop:list-all BY redishop:items:*->price
SORT redishop:list-all BY redishop:items:*->price GET redishop:items:*->price
SORT redishop:list-all BY redishop:items:*->price GET # GET redishop:items:*->price
我们从来没有得到结果,集合中的哈希值为 null,我不明白为什么?
另一方面,如果我们创建哈希并以其他方式设置:
multi
hmset redishop:items:Articulo1 artist "Martin Wessely" price 12.99 name "Handcrafted Trees Mug"
sadd redishop:list-all Articulo1
hmset redishop:items3:Articulo2 artist "Martin Wessely" price 13.99 name "Handcrafted Trees Mug"
sadd redishop:list-all Articulo2
hmset redishop:items3:Articulo3 artist "Martin Wessely" price 14.99 name "Handcrafted Trees Mug"
sadd redishop:list-all Articulo3
exec
通过这种方式,命令 SORT 可以完美运行并将哈希插入集合中,但我不明白为什么在 redis 文档的基础上:
命令 multi only 标记事务块的开始。后续命令将排队等待使用 EXEC 进行原子执行。
当我使用键 key:key:key 创建哈希时,如果我使用 : 或,或 - 和 redis 中最重要的,我们不会根据文档创建结构树: https ://redis.io/topics /数据类型介绍
他们告诉您更好或更好的方法包括:或点,但他们不会告诉您他正在创建结构树。然后我不明白为什么当你在集合中添加哈希时,如果类型 Articulo1 而不是 redishop:items:Articulo1 是好的,但在其他情况下是错误的????事实上,当你输入 hgetall Articulo1 时,你会收到一个 null 但是当你输入 hgetall redishop:items:Articulo1 时,你会得到所有的 fels 一个值。这太奇怪了。
- exec 只执行所有的句子,因为这些原因应该是相同的,使它与 multi 或没有 multi。
请有关该主题的任何帮助或解释都会有很大帮助。提前致谢。