playground

命令

字符串

SET

SET key value [EX seconds] [PX milliseconds] [NX|XX]

设置key的值为value

可以利用SET key value EX seconds NX命令作为分布式锁来使用。

SETEX

SETEX key seconds value

设置key的值为value并设置过期时间为seconds秒。

SETNX

SETNX key value

key不存在时,设置key的值为value,否则不做任何操作。

GET

GET key

返回key对应的值。

INCR

INCR key

key的值自增1。如果值不是整数类型那么会报错,如果值不存在那么会先被初始化为0,再进行自增。

INCRBY

INCRBY key increment

key的值增加increment。如果值不是整数类型那么会报错,如果值不存在那么会先被初始化为0,再进行自增。

有序列表

LPUSH

LPUSH key value [value ...]

把一个或多个值添加到有序列表key的表头。LPUSH key v1 v2 v3等价于原子性地执行LPUSH key v1LPUSH key v2LPUSH key v3三条语句。如果列表key不存在那么会先创建一个空列表。

LPOP

LPOP key

弹出列表key的表头元素,如果列表不存在或列表为空,则返回nil

BLPOP

BLPOP key [key ...] seconds

BLPOP是LPOP的阻塞版本,它可以同时监听多个有序列表,弹出第一个非空列表的表头元素,如果监听的每个列表都不存在或列表都为空,那么该命令会一直阻塞,直到有一个列表不为空或者达到了指定的超时时间。当超时时间设置为0时表示阻塞时间没有限制。

RPUSH

RPUSH key value [value ...]

把一个或多个值添加到有序列表key的表尾。RPUSH key v1 v2 v3等价于原子性地执行RPUSH key v1RPUSH key v2RPUSH key v3三条语句。如果列表key不存在那么会先创建一个空列表。

RPOP

RPOP key

弹出列表key的表尾元素,如果列表不存在或列表为空,则返回nil

BRPOP

BRPOP key [key ...] seconds

BRPOP是RPOP的阻塞版本,它可以同时监听多个有序列表,弹出第一个非空列表的表尾元素,如果监听的每个列表都不存在或列表都为空,那么该命令会一直阻塞,直到有一个列表不为空或者达到了指定的超时时间。当超时时间设置为0时表示阻塞时间没有限制。

LRANGE

LRANGE key start stop

返回有序列表key中下标在区间[start, stop](闭区间)中的元素。当下标是负数时表示从列表的表尾开始遍历,比如-1表示列表中最后一个元素的下标。

LPUSH test 1 2
LRANGE test -2 -1
1) "2"
2) "1"

LLEN

LLEN key

获取有序列表key的元素的数量。

哈希表

HSET

HSET key field value

设置哈希表key中的属性field的值为value

HGET

HGET key field

获取哈希表key中属性field的值。

HEXISTS

HEXISTS key field

判断哈希表key中是否存在属性field

HDEL

HDEL key field [field ...]

删除哈希表key中一个或多个属性。

HINCRBY

HINCRBY key field increment

把哈希表key中的属性field的值增加increment,如果哈希表或属性不存在,会先创建哈希表或创建属性,并将属性的值初始化为0。

集合

SADD

SADD key member [member ...]

往集合key中增加一个或多个元素。

SCARD

SCARD key

获取集合key中元素的数量。

SISMEMBER

SISMEMBER key member

判断集合key是否包含元素member

SMEMBERS

SMEMBERS key

获取集合key中所有的元素。

SDIFF

SDIFF key [key ...]

返回多个集合的差集。

SINTER

SINTER key [key ...]

返回多个集合的交集。

SUNION

SUNION key [key ...]

返回多个集合的并集。

有序集合

ZDD

ZADD key score member [[score member] [score member] ...]

把一个或多个元素member及其分数score放到有序集合key中,当元素已经存在时会更新它的分数。

ZCARD

ZCARD key

获取有序集合key中元素的数量。

ZCOUNT

ZCOUNT key min max

获取有序集合key中分数在[min, max]区间内的元素的数量。

ZRANGE

ZRANGE key start stop [WITHSCORES]

获取有序集合key中元素下标在[start, stop]区间内的元素,按元素的分数从小到大进行排序,分数相同的按字典序排序。如果使用了WITHSCORES参数,那么返回结果中会包含元素的分数。下标也可以是负数,比如-1表示有序集合中最后一个元素的下标。

ZADD age 25 Ben 30 Jack

ZRANGE age 0 -1
1) "Ben"
2) "Jack"

ZRANGE age 0 -1 WITHSCORES
1) "Ben"
2) "25"
3) "Jack"
4) "30"

ZREVRANGE

ZREVRANGE key start stop [WITHSCORES]

ZREVRANGEZRANGE功能类似,仅仅是排序规则相反,按元素分数从大到小的顺序进行排序。

ZRANGEBYSCORE

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

返回有序集合key中分数在[min, max]区间内的元素。如果加上WITHSCORES参数返回结果中会带上元素的分数。参数LIMIT部分可以用作分页查询。

ZADD age 25 Ben 30 Jack

ZRANGEBYSCORE age 1 30 WITHSCORES LIMIT 0 1
1) "Ben"
2) "25"

参数minmax可以设为特殊的-inf+inf分别表示负无穷和正无穷。

ZRANGEBYSCORE age -inf +inf WITHSCORES LIMIT 0 1
1) "Ben"
2) "25"

在分数前加上(符号还可以使查询的区间从默认的闭区间变成开区间。

ZRANGEBYSCORE age 1 30 WITHSCORES
1) "Ben"
2) "25"
3) "Jack"
4) "30"

ZRANGEBYSCORE age 1 (30 WITHSCORES
1) "Ben"
2) "25"

ZREVRANGEBYSCORE

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

ZRANGEBYSCORE功能相同,区别是返回结果按元素的分数从大到小进行排序。

ZRANK

ZRANK key member

返回有序集合key中元素member的排名,排名按元素分数从小到大进行计算,最小的元素的排名是0。如果有序集合不包含元素member,那么返回nil

ZREVRANK

ZREVRANK key member

ZRANK一样也是返回有序集合key中元素member的排名,区别是排名按元素分数从大到小进行计算,最大的元素的排名是0。

ZSCORE

ZSCORE key member

返回有序集合key中元素member的分数,如果不存在该元素那么返回nil

ZREM

ZREM key member [member ...]

移除有序集合key中的一个或多个元素。

ZREMRANGEBYRANK

ZREMRANGEBYRANK key start stop

移除有序集合key中排名在[start, stop]区间内的元素,当下标是负数时表示从列表的表尾开始遍历,比如-1表示列表中最后一个元素的下标。

ZREMRANGEBYSCORE

ZREMRANGEBYSCORE key min max

移除有序集合key中分数在[min, max]区间内的元素。

参考

  1. 《Redis命令参考》