*Redis MSET 命令 同时设置多个 key-value

*MSET

*语法

MSET key value [key value ...]

*说明

MSET 命令设置多个 key 的值为各自对应的 value

MSETSET 一样,会用新值替换旧值。如果你不想覆盖旧值,可以使用 MSETNX

MSET 是原子操作,所有 key 的值同时设置。客户端不会看到有些 key 值被修改,而另一些 key 值没变的情况。

MSETSET 命令的批量版本,可以在一次请求中设置多个 key-value 对,减少客户端与服务器之间的往返次数(round-trip)。

*示例

# 同时设置多个 key
redis-cli MSET key1 "Hello" key2 "World"

# 验证设置结果
redis-cli GET key1
redis-cli GET key2

# 覆盖已有的 key
redis-cli SET oldkey "old value"
redis-cli MSET oldkey "new value" newkey "new"
redis-cli GET oldkey

# 批量设置用户数据
redis-cli MSET user:100:name "Bob" user:100:email "bob@example.com" user:100:age "25"
redis-cli MGET user:100:name user:100:email user:100:age

*返回值

  • Simple string reply:总是返回 OK,因为 MSET 不会失败。

*版本兼容性

版本 说明
>= 1.0.1 可用
< 1.0.1 不支持

*时间复杂度

O(N),其中 N 是设置的 key-value 对数量。