redis字符串系列之五

21 篇文章 0 订阅

目录

mset

msetnx

mget

get与mget


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阻塞或者网络拥塞.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值