SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds:
设置key的过期时间,单位时秒
PX milliseconds:
设置key的过期时间,单位时毫秒
NX:
只有key不存在的时候,才会设置key的值
XX:
只有key存在的时候,才会设置key的值
setnx key value
如果key不存在,才将key设置值为value。这种情况下等同SET命令。 当key存在时,什么也不做。
setex key seconds value
设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期
setex key seconds value等同于下面2条命令,setex是原子的。相比连续执行2条命令,setex更快
SET key value
EXPIRE key seconds
PSETEX key milliseconds value
PSETEX和SETEX一样,唯一的区别是到期时间以毫秒为单位,而不是秒
set key value
set key value ex seconds
设置一个key是tester,value是lisi,20秒过期。有效期内查询值返回lisi,过期后查询返回null
setex key seconds value
设置一个key是tester,value是wangwu,30秒过期。有效期内查询值返回lisi,过期后查询返回null
SETEX命令设置的有效时间,查询剩余有效时间,使用命令TTL
TTL key
设置一个key value,有效时间是60秒,用TTL查询剩余有效时间,还剩56秒
跟SETEX唯一区别是到期时间单位是以毫秒为单位。查询剩余有效时间使用PTTL。
可以看到,当没有过期时,返回剩余有效时间,当过期时,返回-2,代表已经过期。如果是永久有效,将返回-1。
set key value nx
先new了一个student的key,当使用set student zhangsan nx时,就会返回null,因为该key已经存在,并且当key已经存在的时候就什么都不做,值并没有变,还是zhangsan
那么如果是不存在的key,就会设置值成功
SETNX命令效果同set key value nx
SETNX命令返回值:
set key value xx
返回值:key存在被设置,返回OK; key不存在,返回null
key student已存在,设置值为xiu,设置成功返回OK
key nn不存在,设置值为mei,设置失败,返回null
getset key value
先new一个key是no,value是123,再使用getset取旧值的同时赋新值456,操作完之后,使用get查询no的值,是456。
注:当getset命令查不到key时,会返回null
incr key
返回值是增加之后的value
new一个key叫no,值为0,然后执行incr no命令
注:上面的例子已创建了key no,可以使用del命令删除key,也可以直接set no的值为0,方便继续下面的示例。
可见,每执行一次incr命令,value就会自增1
incrby key increment
返回值:增加之后的value值
no的值是0,执行incrby命令,指定要增加多少,效果如下
decr key
返回值是减小之后的value
new一个key叫no,值为10,然后执行decr no命令
注:上面的例子已创建了key no,可以使用del命令删除key,也可以直接set no的值为10,方便继续下面的示例。
可见,每执行一次decr命令,value就会自减1
如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。
decrby key decrement
返回值:减少之后的value值
no的值是100,执行decrby命令,指定要减少多少,效果如下
MSET key value [key value]
设置多组key value
效果同setnx,只不过msetnx是一次命令操作多组keyvalue而已
返回值:
如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。
append key value
返回值:返回append后字符串值(value)的长度。