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