目录
mset
1.语法
mset key value [key value...]
2.解析
同时为多个键设置值
如果某个给定的键存在,那么mset将使用新值去覆盖旧值,如果这不是你希望的的效果,
请考虑使用msetnx命令,这个命令只会在所有给定键都不存在的情况下设置。
mest是一个原子性操作,所有给定的键都会在同一时间内被设置,不会出现某些键被设置了
但是另一些键没有被设置的情况。
3.返回值:
mset命令总是返回ok
4.例子:
同时对多个键进行设置:
mset name "张三" sex "1" age 23
mget name sex age
覆盖已有的值:
set k1 "hello"
set k2 "world"
mget k1 k2
mset k1 "good" k2 "friend"
msetnx
1.语法
msetnx key value [key value]
2.解析
当且仅当所有给定的键都不存在时,为所有给定键设置值
即使只有一个给定键已经存在,msetnx命令也会拒绝执行对所有键进行设置操作
msetnx是一个原子性操作,所有给定键要么就全部都被设置,要么就全部都不设置.不可能出现第三种情况
3.返回值:
当所有给定键都设置成功时,命令返回1,如果因为某个给定键已经存在而导致设置未能成功执行,会返回0
4.例子:
对不存在的键执行msetnx:
msetnx name "sunny" sex 1 age 23
mget name sex age
对某个已经存在的键进行设置:
msetnx name "jack" sex 2 age 28
exists name
get name
mget
1.语法
mget key [key...]
2.解析
返回给定的一个或多个字符串键的值
如果给定的字符串键里面,有某个键不存在,那么这个键的值将以特殊值nil表示
3.返回值:
mget命令将返回一个列表,列表中包含了所有给定键的值.
4.例子:
set name sunny
set sex 1
mget name sex
mget name sex age
get与mget
多次get所用时间:
n 次 get 时间 = n 次网络时间 + n 次命令时间
mget所用时间:
n 次 get 时间 = 1 次网络时间 + n 次命令时间
Redis可以支撑每秒数万的读写操作,但是这指的是Redis服务端的处理能力,对于客户端来说,一次命令除了命令时间还是有网络时间,假设网络时间为1毫秒,命令时间为0.1毫秒(按照每秒处理1万条命令算),那么执行1000次get命令和1次mget命令的区别如下,因为Redis的处理能力已经足够高,对于开发人员来说,网络可能会成为性能的瓶颈。
1000次get:
1000×1+1000×0.1=1100毫秒=1.1秒
1次mget:(组装了1000个键值对)
1×1+1000×0.1=101毫秒=0.101秒
学会使用批量操作,有助于提高业务处理效率,但是要注意的是每次批量操作所发送的命令数不是无节制的,如果数量过多可能造成Redis阻塞或者网络拥塞.