参考文档地址:www.redis.net.cn/order/
字符串String相关命令
-
SET key value 设置指定Key的值
-
GET key 获取指定KEY的值
-
SETEX Key seconds value 设置指定KEY的值,并将key的过期时间设为Seconds秒(可以用在验证码的应用中)
-
SETNX key value 只有key不存在时才设置key的值。
-
GETRANGE key start end 获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
-
MSET key1 value1 key2 value2 ...keyN valueN 用于同时设置一个或多个 key-value 对。
-
SETBIT key offset 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
redis> SETBIT bit 10086 1 (integer) 0 redis> GETBIT bit 10086 (integer) 1 redis> GETBIT bit 100 # bit 默认被初始化为 0 (integer) 0 -
GETBIT key offset 用于对 key 所储存的字符串值,获取指定偏移量(offset)上的位(bit)。
-
DECR key 将 key 中储存的数字值减一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
-
DECRBY key decrement_amout 将 key 所储存的值减去指定的减量值。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
-
Strlen key 获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
-
MSETNX key1 value1 key2 value2 ...keyN valueN 用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。需要注意的是,MSETNX是原子性操作,即只要有一个key存在,则整一个操作都会失败
-
INCRBY key amount 将 key 中储存的数字加上指定的增量值。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
-
INCRBYFLOAT key amount 为 key 中所储存的值加上指定的浮点数增量值。如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
-
SETRANGE key offset 用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
redis 127.0.0.1:6379> SET key1 "Hello World" OK redis 127.0.0.1:6379> SETRANGE key1 6 "Redis" (integer) 11 redis 127.0.0.1:6379> GET key1 "Hello Redis" -
PSETEX key seconds value 以毫秒为单位设置 key 的生存时间。
-
APPEND key value 用于为指定的 key 追加值。如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
-
GETSET key value 用于设置指定 key 的值,并返回 key 旧的值。注意:当 key 存在但不是字符串类型时,返回一个错误。当 key 没有旧值时,即 key 不存在时,返回 nil 。
-
MGET key1 key2 ... keyN 返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
-
INCR key 将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
哈希(Hash) 操作相关命令
在Redis中,hash是一个string类型的filed和value的映射表,hash特别适合用于存储对象。
-
HSET key filed value 将哈希表key中的字段field的值设为value
-
HGET key filed 获取存储在哈希表key中指定字段filed的值
-
HDEL key filed1 filde2 ... filedN 用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
-
HMSET key filed1 value1 filed2 value2... filedN valueN 用于同时将多个 field-value (字段-值)对设置到哈希表中。
此命令会覆盖哈希表中已存在的字段。
如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。
-
HMGET key filed1 filed2...filedN 用于返回哈希表中,一个或多个给定字段的值。
如果指定的字段不存在于哈希表,那么返回一个 nil 值。
-
HGETALL key 用于返回哈希表中,所有的字段和值。
在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍.
-
HEXISTS key filed 用于查看哈希表的指定字段是否存在。
-
HINCRBY key filed amount 用于为哈希表中的字段值加上指定增量值。增量也可以为负数,相当于对指定字段进行减法操作。
如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。本操作的值被限制在 64 位(bit)有符号数字表示之内。
-
HLEN key 用于获取哈希表中字段的数量。当 key 不存在时,返回 0 。
-
HVALS key 返回哈希表所有字段的值。当 key 不存在时,返回一个空表。
-
HINCRBYFLOAT key filed amount为哈希表中的字段值加上指定浮点数增量值。如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
-
HKEYS key 获取哈希表key中所有字段
-
HSETNX key filed value 用于为哈希表中不存在的的字段赋值 。如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。如果字段已经存在于哈希表中,操作无效。
如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。
列表(LIST) 操作命令
-
LPUSH key value1[value2].. 将一个或多个值插入到列表头部
-
RPUSH key value1....valueN 用于将一个或多个值插入到列表的尾部(最右边)。
如果列表不存在,一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时,返回一个错误。
-
RPOPLPUSH source_list destination_list 用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
-
BRPOPLPUSH LIST1 ANOTHER_LIST TIMEOUT 命令从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
-
LPUSHX key value1...valueN 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。
-
LRANGE key start stop 获取列表指定范围内的元素
-
RPOP key 移除并获取列表右边最后一个元素
-
LLEN key 获取列表长度
-
BLPOP LIST1 LIST2 .. LISTN TIMEOUT 命令移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
-
BRPOP key1 [key2] timeout 移除并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
-
LINDEX key index_position 用于通过索引获取列表中的元素。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
-
LREM key count value 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。 count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。 count = 0 : 移除表中所有与 VALUE 相等的值。
-
Ltrim key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
-
LPOP key 用于移除并返回列表的第一个元素。
-
RPUSHX key valu1..valueN 将一个或多个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效。
-
LINSERT key before existing_value new_value 用于在列表的元素前或者后插入元素。 当指定元素不存在于列表中时,不执行任何操作。 当列表不存在时,被视为空列表,不执行任何操作。 如果 key 不是列表类型,返回一个错误
-
LSET key index value 通过索引来设置元素的值。
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
集合Set 操作命令
set是string类型的无序集合。集合成员是唯一的。
-
SADD key value1...valueN 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。当集合 key 不是集合类型时,返回一个错误。
-
SCARD key 返回集合中元素的数量. 当集合 key 不存在时,返回 0 。
-
SRANDMEMBER key count 用于返回集合中的count个随机元素。
- 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。
- 如果 count 大于等于集合基数,那么返回整个集合。如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。
-
SMEMBERS key 返回集合中的所有的成员。 不存在的集合 key 被视为空集合。
-
SINTER key1...keyN 返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集(根据
-
SREM key MEMBER1..MEMBERN 移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
-
SMOVE SOURCE DESTINATION MEMBER
-
将指定成员 member 元素从 source 集合移动到 destination 集合。SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
当 source 或 destination 不是集合类型时,返回一个错误。
-
SUNION KEY KEY1..KEYN 返回给定集合的并集。不存在的集合 key 被视为空集。
-
SISMEMBER KEY VALUE 判断成员元素是否是集合的成员。
-
SDIFFSTORE DESTINATION_KEY KEY1..KEYN 将给定集合之间的差集存储在指定的集合中。如果指定的集合 key 已存在,则会被覆盖。
-
SDIFF FIRST_KEY OTHER_KEY1..OTHER_KEYN 返回给定集合之间的差集。不存在的集合 key 将视为空集
-
SSCAN KEY [MATCH pattern] [COUNT count] 用于迭代集合键中的元素。
-
SPOP KEY 用于移除并返回集合中的一个随机元素。
-
SINTERSTORE DESTINATION_KEY KEY KEY1..KEYN 将给定集合之间的交集存储在指定的集合中。如果指定的集合已经存在,则将其覆盖。
-
SUNIONSTORE DESTINATION KEY KEY1..KEYN 将给定集合的并集存储在指定的集合 destination 中。
有序集合 Sorted set 操作命令
sorted set 有序集合是string类型元素的集合,且不允许有重复成员。每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员也是唯一的,但分数可以重复。
-
ZREVRANK key member 返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。排名以 0 为底,也就是说, 分数值最大的成员排名为 0 。使用 ZRANK 命令可以获得成员按分数值递增(从小到大)排列的排名。
-
ZLEXCOUNT KEY MIN MAX 计算有序集合中指定字典区间内成员数量。
-
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination 。
默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和 。
redis 127.0.0.1:6379> ZRANGE programmer 0 -1 WITHSCORES 1) "peter" 2) "2000" 3) "jack" 4) "3500" 5) "tom" 6) "5000" redis 127.0.0.1:6379> ZRANGE manager 0 -1 WITHSCORES 1) "herry" 2) "2000" 3) "mary" 4) "3500" 5) "bob" 6) "4000" redis 127.0.0.1:6379> ZUNIONSTORE salary 2 programmer manager WEIGHTS 1 3 # 公司决定加薪。。。除了程序员 1 表示parogrammer中的成员分数乘1,3表示Manager中成功分数乘3。。。 (integer) 6 redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES 1) "peter" 2) "2000" 3) "jack" 4) "3500" 5) "tom" 6) "5000" 7) "herry" 8) "6000" 9) "mary" 10) "10500" 11) "bob" 12) "12000" -
ZREMRANGEBYRANK key start stop 用于移除有序集中,指定排名(rank)区间内的所有成员。
redis 127.0.0.1:6379> ZADD salary 2000 jack
(integer) 1
redis 127.0.0.1:6379> ZADD salary 5000 tom
(integer) 1
redis 127.0.0.1:6379> ZADD salary 3500 peter
(integer) 1
redis 127.0.0.1:6379> ZREMRANGEBYRANK salary 0 1 # 移除下标 0 至 1 区间内的成员
(integer) 2
redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES # 有序集只剩下一个成员
1) "tom"
2) "5000"
-
ZCARD KEY_NAME 用于计算集合中元素的数量。
-
ZREM key member 用于移除有序集中的一个或多个成员,不存在的成员将被忽略。当 key 存在但不是有序集类型时,返回一个错误。
-
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] 计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination 。
默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和。
-
ZINCRBY key increment member 对有序集合中指定成员的分数加上增量 increment可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。当 key 不存在,或分数不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。当 key 不是有序集类型时,返回一个错误。分数值可以是整数值或双精度浮点数。
-
ZRANK key member 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。
-
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)。
默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。
redis 127.0.0.1:6379> ZADD salary 2500 jack # 测试数据 (integer) 0 redis 127.0.0.1:6379> ZADD salary 5000 tom (integer) 0 redis 127.0.0.1:6379> ZADD salary 12000 peter (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf # 显示整个有序集 1) "jack" 2) "tom" 3) "peter" redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf WITHSCORES # 显示整个有序集及成员的 score 值 1) "jack" 2) "2500" 3) "tom" 4) "5000" 5) "peter" 6) "12000" redis 127.0.0.1:6379> ZRANGEBYSCORE salary -inf 5000 WITHSCORES # 显示工资 <=5000 的所有成员 1) "jack" 2) "2500" 3) "tom" 4) "5000" redis 127.0.0.1:6379> ZRANGEBYSCORE salary (5000 400000 # 显示工资大于 5000 小于等于 400000 的成员 左括号表示不等于 1) "peter" -
ZRANGEBYLEX key min max [LIMIT offset count] 通过字典区间返回有序集合的成员。
-
ZREMRANGEBYSCORE key min max 用于移除有序集中,指定分数(score)区间内的所有成员。
-
ZSCORE key member 返回有序集中,成员的分数值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil 。
-
ZSCAN key cursor [MATCH pattern] [COUNT count] 用于迭代有序集合中的元素(包括元素成员和元素分值)返回的每个元素都是一个有序集合元素,一个有序集合元素由一个成员(member)和一个分值(score)组成。
-
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列。具有相同分数值的成员按字典序的逆序(reverse lexicographical order )排列。
-
ZREMRANGEBYLEX key min max 用于移除有序集合中给定的字典区间的所有成员。
-
ZREVRANGE key start stop [WITHSCORES] 返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(从大到小)来排列。具有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列。
-
ZCOUNT key min max 用于计算有序集合中指定分数区间的成员数量。
-
ZRANGE key start stop [WITHSCORES] 返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。具有相同分数值的成员按字典序(lexicographical order )来排列。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
-
ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN 用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误。