String
SET
SET key value [EX seconds][PX milliseconds] [NX|XX]可选参数
EX seconds: 设置过期时间,单位为秒,原子操作.SET key value EX second效果等同于SETEX key second valuePX milliseconds:设置过期时间,单位为毫秒,原子操作SET key value PX millisecond效果等同于PSETEX keymillisecond valueNX:只有键不存在时,才会操作.SET key value NX效果等同于SETNX key valueXX:只在键已经存在时,才对键进行设置操作
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 valueLPUSH可以插入多个值到列表头部,原子性操作,如果key不存在,则创建key,在执行插入操作LPUSHX插入一个值到列表头部,如果key不存在,则不做操作
RPUSH,RPUSHX
RPUSH key value[value...],RPUSHX key valueRPUSH可以插入多个值到列表尾部,原子性操作,如果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 valuecount > 0,从头开始搜索,移除与value相等的元素,数量为count的值count < 0,从尾部向头开始搜索,移除与value相等的元素,数量为count的绝对值count = 0,移除所有鱼value相等的元素
LSET
LSET key index value- 将下标为
index的值设置为value 当
index参数超出范围,或对一个空列表(key不存在)LSET时,则返回一个错误