【数据类型】
五种数据类型:
string:字符串,单引号或双引号表示
hash:键值对集合,键值都是字符串
list:字符串列表,顺序是添加顺序
set:字符串无序集合
zset:有序集合,按照添加顺序
【字符串】
SET key value
将字符串值value关联到key。如果key已经持有其他值,SET就覆写旧值,无视类型。
总是返回OK,因为SET不可能失败。
SETNX key value
将key的值设为value,当且仅当key不存在。若给定的key已经存在,则SETNX不做任何动作。
设置成功,返回1。设置失败,返回0。
SETEX key seconds value
将值value关联到key,并将key的生存时间设为seconds(以秒为单位)。如果key 已经存在,SETEX命令将覆写旧值。
设置成功时返回OK。当seconds参数不合法时,返回一个错误。
SETRANGE key offset value
将value从偏移量offset对应位置覆盖。如果offset超过字符长度用\x00补充。key不存在时value按空字符处理
被SETRANGE修改之后,字符串的长度。
MSET key value [key value ...]
同时设置一个或多个key-value对。如果存在同名key则新值覆盖旧值。
总是返回OK(因为MSET不可能失败)
MSETNX key value [key value ...]
同时设置一个或多个key-value对,当且仅当key不存在。该语句如果存在同名key则新值覆盖旧值。该语句中key如果已存在则该语句不生效。
当所有key都成功设置,返回1。失败返回0
APPEND key value
在key对应的字符串后面添加value
返回追加后的字符串长度
GET key
返回key对应的字符串值,如果key不存在返回特殊值nil
MGET key [key ...]
返回所有key对应的值,如果某个key不存在返回特殊值nil
GETRANGE key start end
返回key对应字符串区间[start,end]内的值,包含start和end,正序从0开始,逆序从-1开始
GETSET key value
将给定key的值设为value,并返回key的旧值。没有旧值返回nil
STRLEN key
返回key所储存的字符串值的长度。不存在的key返回0
DECR key
将key中储存的数字值减一,并返回。如果key不存在,以0为key的初始值,然后执行DECR操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
DECRBY key decrement
将key所储存的值减去减量decrement,并返回。以0为key的初始值,然后执行DECRBY操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
INCR key
将key中储存的数字值增一,并返回。如果key不存在,以0为key的初始值,然后执行INCR操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
INCRBY key increment
将key所储存的值加上增量increment,并返回。如果key不存在,以0为key的初始值,然后执行INCRBY操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
SETBIT key offset value
将key对应字符串值指定偏移量上的比特位设置为value,返回该比特位原来的值。空白位用0填充。
GETBIT key offset
返回key对应字符串值指定偏移量上比特位的值。key不存在或offset超过长度返回0。
Q1.如果字符串包含空格,引号可以使用不同引号区分
set name "'james harden'"或set name '"james harden"'
【哈希表】
HSET key field value [fieldvalue]
将key中字段filed值设为value,如果没有key就创建一个。如果field已存在则覆盖旧值
返回设置成功field个数,field已存在进行新值覆盖旧值的不算。
HSETNX key field value
将哈希表key中的域field的值设置为value,当且仅当域field不存在。
设置成功返回1,field已存在返回0
HMSET key field value [field value ...]
同时将多个field - value(域-值)对设置到哈希表key中。key不存在创建,key存在field存在则覆盖
成功返回OK,如果key存在不是hash则返回错误
HGET key field
返回哈希表key中给定域field的值。key不存在field不存在返回nil
HMGET key field [field ...]
按照field顺序返回对应字段内容
HGETALL key
返回所有的field和value
HDEL key field [field ...]
删除哈希表key中的一个或多个指定域,不存在的域将被忽略。
被成功移除的域的数量,不包括被忽略的域。
HLEN key
返回哈希表key中域的数量。当key不存在时,返回0。
HEXISTS key field
查看哈希表key中,给定域field是否存在。
存在返回1,key不存在或field不存在返回0
HINCRBY key field increment
为哈希表key中的域field的值加上增量increment。increment为负数则进行递减。
返回field修改后的value。key不存在则创建,field不存在默认0。如果filed对应不是数字字符则返回错误。
HKEYS key
返回key中所有field,key不存在返回空表。
HVALS key
返回哈希表key中的所有值。,key不存在返回空表。
【列表】
LPUSH key value [value ...]
按照顺序将value依次插入表头
返回列表长度。key不存在则创建,key不是列表类型返回错误
LPUSHX key value
将值value插入到列表key的表头,当且仅当key存在并且是一个列表。key不存在什么也不做。
返回修改后列表长度
RPUSH key value [value ...]
按照顺序将value依次插入表尾,key不存在则创建一个空列表。
返回插入后的列表长度,key不是列表类型返回错误。
RPUSHX key value
将value插入到key的表尾。当且仅当key时一个存在的列表。key不存在时,不执行任何操作
返回修改后的key的长度
LPOP key
移除并返回列表key的头元素。
返回列表的头元素。当key不存在时,返回nil。
RPOP key
移除并返回列表key的尾元素。
返回列表的尾元素。当key不存在时,返回nil。
BLPOP key [key ...] timeout
按照key顺序查找,返回第一个非空列表的key和表首元素。当列表为空时该命令进行阻塞知道等待超时或列表中有元素。
BRPOP key [key ...] timeout
按照key顺序查找,返回第一个非空列表的key和表尾元素。当列表为空时该命令进行阻塞知道等待超时或列表中有元素。
假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长。
LLEN key
返回列表key的长度。key不存在返回0,key不是列表返回错误
LRANGE key start stop
返回列表中[start,stop]的元素,正序从0开始,逆序从-1开始
LREM key count value
count > 0: 从表头开始向表尾搜索,移除与value相等的,共计count个元素。
count < 0: 从表尾开始向表头搜索,移除与value相等的,共计-count个元素。
count = 0: 移除表中所有与value相等的值。
返回被移除元素的数目。key不存在返回0
LSET key index value
将列表key下标为index的元素的值甚至为value。
操作成功返回OK。当index参数超出范围,或对一个空列表(key不存在)操作时,返回一个错误。
LTRIM key start stop
列表只保留[start, stop]内的元素,其他元素删除掉。
执行成功返回ok,key不是列表返回错误。
LINDEX key index
返回列表key中,下标为index的元素。key不存在返回错误,index超出返回返回nil
LINSERT key BEFORE|AFTER pivot value
将value插入到值与pivot相同的元素之前或之后。
没有找到pivot不进行任何操作返回-1。
如果key不存在或为空列表返回0
如果key不是列表返回错误。
如果有多个pivot,则以第一个为标准。
返回修改后的列表的长度。
RPOPLPUSH source destination
将source中最后一个元素移入为destination第一个元素
返回操作的该元素,如果source为空则返回nil,不做任何操作
BRPOPLPUSH source destination timeout
为阻塞版
返回元素和时常,假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长。