String
SET
SET key value [EX seconds][PX milliseconds] [NX|XX]
可选参数
EX seconds
: 设置过期时间,单位为秒,原子操作.SET key value EX second
效果等同于SETEX key second value
PX milliseconds
:设置过期时间,单位为毫秒,原子操作SET key value PX millisecond
效果等同于PSETEX keymillisecond value
NX
:只有键不存在时,才会操作.SET key value NX
效果等同于SETNX key value
XX
:只在键已经存在时,才对键进行设置操作
GET
- 返回
key
所关联的字符串值。 - 如果
key
不存在那么返回特殊值nil
- 假如
key
储存的值不是字符串类型,返回一个错误,因为GET
只能用于处理字符串值。
GETBIT
GETBIT key offset
- 对
key
所储存的字符串值,获取指定偏移量上的位(bit) - 当
offset
比字符串值的长度大,或者key
不存在时,返回0
GETSET
GETSET key value
- 将给定
key
的值设为value
,并返回key
的旧值(old value) - 当
key
存在但不是字符串类型时,返回一个错误
APPEND
APPEND key value
- 如果
key
存在并且是一个字符串,则将value
追加到key
原来的值的末尾 - 如果
key
不存在,就像执行set key value
的操作一样
GETRANGE
GETRANGE key start end
- 返回
key
中字符串值的子字符串,字符串的截取范围由start
和end
两个偏移量决定(包括start
和end
在内)
INCR
,INCRBY
,INCRBYFLOAT
INCR key
:递增加1INCRBY key increment
:+incrementINCRBYFLOAT key increment
: +incrementkey
不存在,先将key
的值设为0,再做操作
DECR
,DECRBY
- 同上,递减操作
MSGET
MGET key [key ...]
- 返回所有(一个或多个)给定
key
的值 - 如果给定的
key
里面,有某个key
不存在,那么这个key
返回特殊值nil
。因此,该命令永不失败
MSSET
MSET key value [key value ...]
- 同时设置一个或多个
key-value
对 - 如果某个给定
key
已经存在,那么 [MSET] 会用新值覆盖原来的旧值 - 是一个原子性(atomic)操作,所有给定
key
都会在同一时间内被设置,某些给定key
被更新而另一些给定key
没有改变的情况,不可能发生
MSSETNX
MSETNX key value [key value ...]
- 同时设置一个或多个
key-value
对,当且仅当所有给定key
都不存在 - 即使只有一个给定
key
已存在,也不会执行此操作 - 原子性操作,要么所有字段全部设置成功,要么全部失败
STRLEN
STRLEN key
- 返回
key
所储存的字符串值的长度 - 当
key
储存的不是字符串值时,返回一个错误
List
BLPOP
,BRPOP
BLPOP key [key ...] timeout
,BRPOP key [key ...] timeout
- 按给定
key
参数排列的先后顺序,依次检查各个列表,如果列表都为空,则阻塞链接,直到可以获取到元素 timeout
接受一个以秒为单位的数字作为值。超时参数设为0
表示阻塞时间可以无限期延长- 阻塞版弹出元素,
BLPOP
弹出第一个非空列表的头部元素,BRPOP
弹出第一个非空列表的尾部元素 - 返回弹出元素的
key
,value
LPOP
,RPOP
LPOP key
,RPOP key
- 移除并返回列表
key
的头元素,移除并返回列表key
的尾部元素 - 当
key
不存在时,返回nil
BRPOPLPUSH
,RPOPLPUSH
BRPOPLPUSH source destination timeout
,RPOPLPUSH source destination timeout
- 给定列表
source
不为空时,两者表现一致 - 列表
source
中的最后一个元素(尾元素)弹出,并返回给客户端 source
弹出的元素插入到列表destination
,作为destination
列表的的头元素- 当
source
为空时,BRPOPLPUSH
命令将阻塞连接,直到等待超时,或有另一个客户端对source
执行 LPUSH 或 RPUSH命令为止 timeout
接受一个以秒为单位的数字作为值。超时参数设为0
表示阻塞时间可以无限期延长- 如果
source
和destination
相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作
LINDEX
LINDEX key index
- 按照下标获取列表中
key
的值 - 如果
key
不是列表类型,返回一个错误
LINSERT
LINSERT key BEFORE|AFTER pivot value
- 将值
value
,插入到值pivot
的之前或之后 - 当
pivot
不存在于列表key
时,不执行任何操作 - 当
key
不存在时,key
被视为空列表,不执行任何操作
LLEN
LLEN key
- 返回列表的长度
- 如果
key
不存在,返回0
LPUSH
,LPUSHX
LPUSH key value[value...]
,LPUSHX key value
LPUSH
可以插入多个值到列表头部,原子性操作,如果key
不存在,则创建key
,在执行插入操作LPUSHX
插入一个值到列表头部,如果key
不存在,则不做操作
RPUSH
,RPUSHX
RPUSH key value[value...]
,RPUSHX key value
RPUSH
可以插入多个值到列表尾部,原子性操作,如果key
不存在,则创建key
,在执行插入操作RPUSHX
插入一个值到列表尾部,如果key
不存在,则不做操作
LRANGE
LRANGE key start end
- 获取列表的范围内的值,包含start和end
- 超出范围的下标值不会引起错误
- 如果start比最大的下标还大,则返回一个空列表
- 如果end比最大下标还大,则以最大小标为结束
LTRIM
LTRIM key start end
- 保留
start
和end
之间的元素,包含start
,end
,删除其余元素 - 如果start比最大的下标还大,则返回一个空列表
- 如果end比最大下标还大,则以最大小标为结束
LREM
LREM key count value
count > 0
,从头开始搜索,移除与value
相等的元素,数量为count的值count < 0
,从尾部向头开始搜索,移除与value相等的元素,数量为count的绝对值count = 0
,移除所有鱼value
相等的元素
LSET
LSET key index value
- 将下标为
index
的值设置为value
当
index
参数超出范围,或对一个空列表(key
不存在)LSET
时,则返回一个错误