Redis中的HSET和HMSET是否相同

时间:2017-10-05 10:23:17

标签: database redis

我正在阅读文档并尝试使用Redis,并遇到了HSET和HMSET命令。我找不到它们之间的任何区别,我尝试搜索,并找到了以下问题,

What is the difference between HSET and HMSET method in redis database

并接受回答说明:

  

HMSET与HSET类似,但它允许设置多个字段/值对   马上。

但是当我尝试时,HSET也允许一次设置多个字段/值对。

请看下面的屏幕截图,对我而言似乎都是一样的:

enter image description here

任何人都可以向我解释两者之间的区别。或用例,其中一个应该用于其他用途。

由于

3 个答案:

答案 0 :(得分:4)

我是链接主题中接受的答案的作者。)

显然,从那以后的某个时刻,HSET命令被更新为可变参数(与HMSET相同)。在我的本地redis版本(4.0.2)中,它确实可以设置多个键值对(尽管redis-cli中的命令语法提示表明这是可能的)。但是,在redis.io上为交互式控制台提供支持的版本仍然不支持。

redis> HSET foo a 1 b 2 c 3
ERR ERR wrong number of arguments for 'hset' command

所以是的,现在看起来确实相同。

答案 1 :(得分:1)

正在研究2019:)

万一有人好奇,请参阅官方文档:

  

根据Redis 4.0.0,HMSET被视为已弃用。请在中使用HSET   新代码。

https://redis.io/commands/hmset

答案 2 :(得分:0)

无论如何,HMSET / HSET是一种历史设计,HSET只做HMSET,你可以用HMSET取代HSET呼叫,一切正常。