MSET:一次为多个字符串键设置值

除了 SET 命令和 GETSET 命令之外,Redis 还提供了 MSET 命令用于对字符串键进行设置。跟 SET 命令和 GETSET 命令只能设置单个字符串键的做法不同,MSET 命令可以一次为多个字符串键设置值:

  1. MSET key value [key value ...]

作为例子,以下代码展示了如何使用一条 MSET 命令去设置 messagenumberhomepage 三个键:

  1. redis> MSET message "hello world" number "10086" homepage "redis.io"
  2. OK
  3.  
  4. redis> GET message
  5. "hello world"
  6.  
  7. redis> GET number
  8. "10086"
  9.  
  10. redis> GET homepage
  11. "redis.io"

SET 命令一样,MSET 命令也会在执行设置操作之后返回 OK 表示设置成功。此外,如果给定的字符串键已经有相关联的值,那么 MSET 命令也会直接使用新值去覆盖已有的旧值。

比如以下代码就展示了怎样使用 MSET 命令去覆盖上一个 MSET 命令为 message 键和 number 键设置的值:

  1. redis> MSET message "good morning!" number "12345"
  2. OK
  3.  
  4. redis> GET message
  5. "good morning!"
  6.  
  7. redis> GET number
  8. "12345"

MSET 命令除了可以让用户更为方便地执行多个设置操作之外,还能够有效地提高程序的效率:执行多条 SET 命令需要客户端和服务器之间进行多次网络通信,并因此耗费大量的时间;通过使用一条 MSET 命令去代替多条 SET 命令,可以将原本所需的多次网络通信降低为只需一次网络通信,从而有效地减少程序执行多个设置操作时所需的时间。

其他信息

属性
复杂度O(N),其中 N 为用户给定的字符串键数量。
版本要求MSET 命令从 Redis 1.0.1 开始可用。