HSET和HMSET方法在Redis数据库中有什么区别?

88

我在我的应用程序中使用Redis数据库。我已经阅读了他们的文档,但是我找不到HSET和HMSET之间的区别。

3个回答

137

HSET曾经只能设置一个键值对。如果您需要一次设置多个键值对,您必须使用HMSET(M代表multi)。几年前已经改变了这种情况,现在两个命令都可以接受多个键值对。现在HMSET是冗余的。

来自官方文档:

根据Redis 4.0.0的规定,HMSET被认为是不推荐使用的。请在新代码中使用HSET。


11
根据官方文件:“自Redis 4.0.0版本起,HMSET被认为是已弃用的。请在新代码中使用HSET。” - 18augst
@18augst:感谢您的提醒。我已经重新修改了我的回答。 - Sergio Tulentsev
嗨,在我的 Redis-cli 版本为 4.0.9 的情况下,它们都可以工作。 - Anshuman Kumar

19

HSET key field value

将哈希表key中的域field的值设置为value。如果key不存在,则创建一个新的哈希表,并进行设置。如果field已经存在于哈希表中,则覆盖原有的值。

HMSET key field value [field value ...]

将哈希表key中指定的多个域的值设置为它们各自对应的value。此命令会覆盖哈希表中已有的任何字段。如果key不存在,则创建一个新的哈希表。

更多关于Redis命令的信息,请点击这里


5
命令HSETHMSET之间唯一的区别是命令的返回值
HSET的返回值(整数回复):
  • #如果字段是哈希中的新字段并设置了值。 (其中#是创建的新字段数)
  • 0如果字段已经存在于哈希中并且更新了值。
HMSET返回一个简单的字符串作为回复。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接