MGET
MGET key [key …]
返回给定的一个或多个字符串a键的值。
如果给定的字符串键里面, 有某个键不存在, 那么这个键的值为空白
例子:
127.0.0.1:6379> mget a hello
测试工程师
123
127.0.0.1:6379> mget a hello b
测试工程师
123
nihao
127.0.0.1:6379>
MSET
MSET key value [key value …]
同时设置多个键值对。
如果某个给定键已经存在, 那么 MSET 将使用新值去覆盖旧值, 如果这不是你所希望的效果, 请考虑使用 MSETNX 命令, 这个命令只会在所有给定键都不存在的情况下进行设置。
MSET 是一个原子性(atomic)操作, 所有给定键都会在同一时间内被设置, 不会出现某些键被设置了但是另一些键没有被设置的情况。
例子:
- 同时对多个键进行设置:
redis> MSET date "2012.3.30" time "11:00 a.m." weather "sunny"
OK
redis> MGET date time weather
"2012.3.30"
"11:00 a.m."
"sunny"
- 覆盖已有的值:
redis> MSET k1 "hello" k2 "world"
OK
redis> MGET k1 k2
1) "hello"
2) "world"
redis> MSET k1 "good" k2 "bye"
OK
redis> MGET k1 k2
"good"
"bye"
MSETNX
MSETNX key value [key value …]
当且仅当所有给定键都不存在时, 为所有给定键设置值。
即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作。
MSETNX 是一个原子性(atomic)操作, 所有给定键要么就全部都被设置, 要么就全部都不设置, 不可能出现第三种状态。
当所有给定键都设置成功时, 命令返回 1 ; 如果因为某个给定键已经存在而导致设置未能成功执行, 那么命令返回 0 。
例子:
对不存在的键执行 MSETNX 命令:
redis> MSETNX rmdbs "MySQL" nosql "MongoDB" key-value-store "redis"
1
redis> MGET rmdbs nosql key-value-store
"MySQL"
"MongoDB"
"redis"
对某个已经存在的键进行设置:
redis> MSETNX rmdbs "Sqlite" language "python" # rmdbs 键已经存在,操作失败
0
redis> GET language
# 值为空,language 没有设置成功
redis> GET rmdbs # rmdbs 键也没有被修改
"MySQL"
网友评论