Redis HMSET命令

Redis HMSET命令教程

Redis 的 HMSET 命令同时将多个 field-value (域-值)对设置到 哈希表KEY 中。此命令会覆盖哈希表中已存在的域。

如果 KEY 不存在,一个空哈希表被创建并执行 HMSET 操作。

Redis HMSET命令详解

语法

192.168.98.70:6379> HMSET KEY field value [field value ...]

参数

参数 描述
KEY 要设置的 HASH 的键。
field 要设置的域。
value 要设置的域对应的值。

返回值

如果命令执行成功,返回 OK 。当 KEY 不是哈希表(hash)类型时,返回一个错误。

时间复杂度

O(N), N 为 field-value 对的数量。

可用版本

>= 2.0.0

案例

field不存在

当 field 不存在时,设置成功

# field 不存在 192.168.98.70:6379> HMSET haidcoder site haicoder.net module Database category Redis OK 192.168.98.70:6379> HGET haidcoder site "haicoder.net" 192.168.98.70:6379> HGET haidcoder module "Database" 192.168.98.70:6379> HGET haidcoder category "Redis" 192.168.98.70:6379> DEL haidcoder (integer) 1

我们首先,使用 HMSET 命令,批量设置键 haicoder 的 site 字段,module 字段,和 category 字段。接着,我们使用 HGET 命令,获取键 haicoder 的 site 字段的值,返回 haicoder.net。

最后,我们使用 HGET 命令,获取键 haicoder 的 module 字段的值,返回 Database。使用 HGET 命令,获取键 haidcoder 的 category 字段的值,返回 Redis。

field存在

当 field 存在时,会覆盖旧值

# field 存在 192.168.98.70:6379> HSET haicoder.net name "haicoder" (integer) 1 192.168.98.70:6379> HGET haicoder.net name "haicoder" 192.168.98.70:6379> HMSET haicoder.net name "hicoder" module Database category Redis OK 192.168.98.70:6379> HGET haicoder.net name "hicoder" 192.168.98.70:6379> HGET haicoder.net module "Database" 192.168.98.70:6379> DEL haicoder.net (integer) 1

我们首先,使用 HSET 命令,设置键 haicoder.net 的 name 字段为 haicoder。使用 HGET 命令,获取刚设置的键 haicoder.net 的 name 字段的值,返回 haicoder。

接着,我们使用 HMSET 命令,批量设置键 haicoder.net 的 name 字段,module 字段,和 category 字段,此时虽然 name 字段存在, 但同样设置成功,覆盖了原来的旧值。

最后,我们使用 HGET 命令,获取刚设置的键 haicoder.net 的 name 字段的值,返回 hicoder,说明此时旧值被覆盖了。

Redis HMSET命令总结

Redis 的 HMSET 命令同时将多个 field-value (域-值)对设置到哈希表 KEY 中。Redis HMSET 命令语法:

192.168.98.70:6379> HMSET KEY field value [field value ...]