redis支持以下五种数据类型:
数据类型 | 指令 | 指令用法 | 备注 |
String | SET | (1)将字符串值Value关联到Key (2)Key已关联则覆盖,无视类型 (3)原本Key带有生存时间TTL,那么TTL被清除 |
SET key value [EX seconds] [PX milliseconds] [NX|XX] |
GET | (1)返回key关联的字符串值 (2)Key不存在返回nil (3)Key存储的不是字符串,返回错误,因为GET只用于处理字符串 |
GET key | |
MSET | (1)同时设置一个或多个Key-Value键值对 (2)某个给定Key已经存在,那么MSET新值会覆盖旧值 (3)如果上面的覆盖不是希望的,那么使用MSETNX命令,所有Key都不存在才会进行覆盖 (4)MSET是一个原子性操作,所有Key都会在同一时间被设置,不会存在有些更新有些没更新的情况 |
MSET key value [key value ...] | |
MGET | (1)返回一个或多个给定Key对应的Value (2)某个Key不存在那么这个Key返回nil |
MGET key [key ...] | |
SETEX | (1)将Value关联到Key (2)设置Key生存时间为seconds,单位为秒 (3)如果Key对应的Value已经存在,则覆盖旧值 (4)SET也可以设置失效时间,但是不同在于SETNX是一个原子操作,即关联值与设置生存时间同一时间完成 |
SETEX key seconds value | |
SETNX | (1)将Key的值设置为Value,当且仅当Key不存在 (2)若给定的Key已经存在,SEXNX不做任何动作 |
SETNX key value | |
INCR | (1)Key中存储的数字值+1,返回增加之后的值 (2)Key不存在,那么Key的值被初始化为0再执行INCR (3)如果值包含错误类型或者字符串不能被表示为数字,那么返回错误 (4)值限制在64位有符号数字表示之内,即-9223372036854775808~9223372036854775807 |
INCR key | |
DECR | (1)Key中存储的数字值-1 (2)其余同INCR |
DECR key | |
INCRBY | (1)将key所存储的值加上增量返回增加之后的值 (2)其余同INCR |
INCRBY key increment | |
DECRBY | (1)将key所存储的值减去减量decrement (2)其余同INCR |
DECRBY key decrement | |
Hash | HSET | (1)将哈希表Key中的域field的值设为value (2)key不存在,一个新的Hash表被创建 (3)field已经存在,旧的值被覆盖 |
HSET key field value |
HGET | (1)返回哈希表key中给定域field的值 | HGET key field | |
HDEL | (1)删除哈希表key中的一个或多个指定域 (2)不存在的域将被忽略 |
HDEL key filed [field ...] | |
HEXISTS | (1)查看哈希表key中,给定域field是否存在,存在返回1,不存在返回0 | HEXISTS key field | |
HGETALL | (1)返回哈希表key中,所有的域和值 | HGETALL key | |
HINCRBY | (1)为哈希表key中的域field加上增量increment (2)其余同INCR命令 |
HINCRYBY key filed increment | |
HKEYS | (1)返回哈希表key中的所有域 | HKEYS key | |
HLEN | (1)返回哈希表key中域的数量 | HLEN key | |
HMGET | (1)返回哈希表key中,一个或多个给定域的值 (2)如果给定的域不存在于哈希表,那么返回一个nil值 |
HMGET key field [field ...] | |
HMSET | (1)同时将多个field-value对设置到哈希表key中 (2)会覆盖哈希表中已存在的域 (3)key不存在,那么一个空哈希表会被创建并执行HMSET操作 |
HMSET key field value [field value ...] | |
HVALS | (1)返回哈希表key中所有的域和值 | HVALS key | |
LIST | LPUSH | (1)将一个或多个值value插入到列表key的表头 (2)如果有多个value值,那么各个value值按从左到右的顺序依次插入表头 (3)key不存在,一个空列表会被创建并执行LPUSH操作 (4)key存在但不是列表类型,返回错误 |
LPUSH key value [value ...] |
LPUSHX | (1)将值value插入到列表key的表头,当且晋档key存在且为一个列表 (2)key不存在时,LPUSHX命令什么都不做 |
LPUSHX key value | |
LPOP | (1)移除并返回列表key的头元素 | LPOP key | |
LRANGE | (1)返回列表key中指定区间内的元素,区间以偏移量start和stop指定 (2)start和stop都以0位底 (3)可使用负数下标,-1表示列表最后一个元素,-2表示列表倒数第二个元素,以此类推 (4)start大于列表最大下标,返回空列表 (5)stop大于列表最大下标,stop=列表最大下标 |
LRANGE key start stop | |
LREM | (1)根据count的值,移除列表中与value相等的元素 (2)count>0表示从头到尾搜索,移除与value相等的元素,数量为count (3)count<0表示从从尾到头搜索,移除与value相等的元素,数量为count (4)count=0表示移除表中所有与value相等的元素 |
LREM key count value | |
LSET | (1)将列表key下标为index的元素值设为value (2)index参数超出范围,或对一个空列表进行LSET时,返回错误 |
LSET key index value | |
LINDEX | (1)返回列表key中,下标为index的元素 | LINDEX key index | |
LINSERT | (1)将值value插入列表key中,位于pivot前面或者后面 (2)pivot不存在于列表key时,不执行任何操作 (3)key不存在,不执行任何操作 |
LINSERT key BEFORE|AFTER pivot value | |
LLEN | (1)返回列表key的长度 (2)key不存在,返回0 |
LLEN key | |
LTRIM | (1)对一个列表进行修剪,让列表只返回指定区间内的元素,不存在指定区间内的都将被移除 | LTRIM key start stop | |
RPOP | (1)移除并返回列表key的尾元素 | RPOP key | |
RPOPLPUSH | 在一个原子时间内,执行两个动作: (1)将列表source中最后一个元素弹出并返回给客户端 (2)将source弹出的元素插入到列表desination,作为destination列表的头元素 |
RPOPLPUSH source destination | |
RPUSH | (1)将一个或多个值value插入到列表key的表尾 | RPUSH key value [value ...] | |
RPUSHX | (1)将value插入到列表key的表尾,当且仅当key存在并且是一个列表 (2)key不存在,RPUSHX什么都不做 |
RPUSHX key value | |
SET | SADD | (1)将一个或多个member元素加入到key中,已存在在集合的member将被忽略 (2)假如key不存在,则只创建一个只包含member元素做成员的集合 (3)当key不是集合类型时,将返回一个错误 |
SADD key number [member ...] |
SCARD | (1)返回key对应的集合中的元素数量 | SCARD key | |
SDIFF | (1)返回一个集合的全部成员,该集合是第一个Key对应的集合和后面key对应的集合的差集 | SDIFF key [key ...] | |
SDIFFSTORE | (1)和SDIFF类似,但结果保存到destination集合而不是简单返回结果集 (2) destination如果已存在,则覆盖 |
SDIFFSTORE destionation key [key ...] | |
SINTER | (1)返回一个集合的全部成员,该集合是所有给定集合的交集 (2)不存在的key被视为空集 |
SINTER key [key ...] | |
SINTERSTORE | (1)和SINTER类似,但结果保存早destination集合而不是简单返回结果集 (2)如果destination已存在,则覆盖 (3)destination可以是key本身 |
SINTERSTORE destination key [key ...] | |
SISMEMBER | (1)判断member元素是否key的成员,0表示不是,1表示是 | SISMEMBER key member | |
SMEMBERS | (1)返回集合key中的所有成员 (2)不存在的key被视为空集 |
SMEMBERS key | |
SMOVE | (1)原子性地将member元素从source集合移动到destination集合 (2)source集合中不包含member元素,SMOVE命令不执行任何操作,仅返回0 (3)destination中已包含member元素,SMOVE命令只是简单做source集合的member元素移除 |
SMOVE source desination member | |
SPOP | (1)移除并返回集合中的一个随机元素,如果count不指定那么随机返回一个随机元素 (2)count为正数且小于集合元素数量,那么返回一个count个元素的数组且数组中的元素各不相同 (3)count为正数且大于等于集合元素数量,那么返回整个集合 (4)count为负数那么命令返回一个数组,数组中的元素可能重复多次,数量为count的绝对值 |
SPOP key [count] | |
SRANDMEMBER | (1)如果count不指定,那么返回集合中的一个随机元素 (2)count同上 |
SRANDMEMBER key [count] | |
SREM | (1)移除集合key中的一个或多个member元素,不存在的member将被忽略 | SREM key member [member ...] | |
SUNION | (1)返回一个集合的全部成员,该集合是所有给定集合的并集 (2)不存在的key被视为空集 |
SUNION key [key ...] | |
SUNIONSTORE | (1)类似SUNION,但结果保存到destination集合而不是简单返回结果集 (2)destination已存在,覆盖旧值 (3)destination可以是key本身 |
SUNION destination key [key ...] | |
SortedSet | ZADD | (1)将一个或多个member元素及其score值加入有序集key中 (2)如果member已经是有序集的成员,那么更新member对应的score并重新插入member保证member在正确的位置上 (3)score可以是整数值或双精度浮点数 |
ZADD key score member [[score member] [score member] ...] |
ZCARD | (1)返回有序集key的元素个数 | ZCARD key | |
ZCOUNT | (1) 返回有序集key中,score值>=min且<=max的成员的数量 | ZCOUNT key min max | |
ZRANGE | (1)返回有序集key中指定区间内的成员,成员位置按score从小到大排序 (2)具有相同score值的成员按字典序排列 (3)需要成员按score从大到小排列,使用ZREVRANGE命令 (4)下标参数start和stop都以0为底,也可以用负数,-1表示最后一个成员,-2表示倒数第二个成员 (5)可通过WITHSCORES选项让成员和它的score值一并返回 |
ZRANGE key start stop [WITHSCORES] | |
ZRANK | (1)返回有序集key中成员member的排名,有序集成员按score值从小到大排列 (2)排名以0为底,即score最小的成员排名为0 (3)ZREVRANK命令可将成员按score值从大到小排名 |
ZRANK key number | |
ZREM | (1)移除有序集key中的一个或多个成员,不存在的成员将被忽略 (2)当key存在但不是有序集时,返回错误 |
ZREM key member [member ...] | |
ZREMRANGEBYRANK | (1)移除有序集key中指定排名区间内的所有成员 | ZREMRANGEBYRANK key start stop | |
ZREMRANGEBYSCORE | (1)移除有序集key中,所有score值>=min且<=max之间的成员 | ZREMRANGEBYSCORE key min max |