HMSET:一次为多个字段设置值
用户可以通过 HMSET
命令,一次为散列中的多个字段设置值:
- HMSET hash field value [field value ...]
HMSET
命令在设置成功时返回 OK
。
图 3-17 储存文章数据的散列
比如说,为了构建图 3-17 所示的散列,我们可能会执行以下四个 HSET
命令:
- redis> HSET article::10086 title "greeting"
- (integer) 1
- redis> HSET article::10086 content "hello world"
- (integer) 1
- redis> HSET article::10086 author "peter"
- (integer) 1
- redis> HSET article::10086 created_at "1442744762.631885"
- (integer) 1
但是接下来的这一条 HMSET
命令可以更方便地完成相同的工作:
- redis> HMSET article::10086 title "greeting" content "hello world" author "peter" created_at "1442744762.631885"
- OK
此外,因为客户端在执行这条 HMSET
命令时只需要与 Redis 服务器进行一次通信,而上面的四条 HSET
命令则需要客户端与 Redis 服务器进行四次通信,所以前者的执行速度要比后者快得多。
使用新值覆盖旧值
如果用户给定的字段已经存在于散列当中,那么 HMSET
命令将使用用户给定的新值去覆盖字段已有的旧值。
比如对于 title
和 content
这两个已经存在于 article::10086
散列的字段来说:
- redis> HGET article::10086 title
- "greeting"
- redis> HGET article::10086 content
- "hello world"
如果我们执行以下命令:
- redis> HMSET article::10086 title "Redis Tutorial" content "Redis is a data structure store, ..."
- OK
那么 title
字段和 content
字段已有的旧值将被新值覆盖:
- redis> HGET article::10086 title
- "Redis Tutorial"
- redis> HGET article::10086 content
- "Redis is a data structure store, ..."
其他信息
属性 | 值 |
---|---|
复杂度 | O(N),其中 N 为被设置的字段数量。 |
版本要求 | HMSET 命令从 Redis 2.0.0 版本开始可用。 |