Redis 命令大致可分为以下几种:

  • 服务端(server)命令
  • 客户端(client)命令
  • 键命令(key)
  • 数据类型命令
  • 功能应用命令

这里介绍了 Redis 中经常使用的命令,包括键命令和数据类型命令,其中数据类型命令包括 String、List、Hash、Set 以及 Sorted Set。

键(Key)命令

我们知道 Redis 是 key-value 型数据库,使用 key 对 value 进行存储,因此,键(Key)命令是 Redis 中经常使用的一类命令。常用的键命令如下所示:

命令

说明

DEL

若键存在的情况下,该命令用于删除键

DUMP

用于序列化给定 key ,并返回被序列化的值

EXISTS

用于检查键是否存在,若存在则返回 1,否则返回 0

EXPIRE

设置 key 的过期时间,以秒为单位

EXPIREAT

该命令与 EXPIRE 相似,用于为 key 设置过期时间,不同在于,它的时间参数值采用的是时间戳格式。

KEYS

此命令用于查找与指定 pattern 匹配的 key

MOVE

将当前数据库中的 key 移动至指定的数据库中(默认存储为 0 库,可选 1-15中的任意库)

PERSIST

该命令用于删除 key 的过期时间,然后 key 将一直存在,不会过期

PEXPIRE

设置 key 的过期,以毫秒为单位

RANDOMKEY

从当前数据库中随机返回一个 key

RENAME

修改 key 的名称

SCAN

基于游标的迭代器,用于迭代数据库中存在的所有键,cursor 指的是迭代游标

TTL

用于检查 key 还剩多长时间过期,以秒为单位

TYPE

该命令用于获取 value 的数据类型。

Hash 命令

Hash(哈希散列)是 Redis 基本数据类型之一,它以字符串映射表的形式来进行存储。Hash 特别适合用于存储对象。常用的命令如下所示:

命令

说明

HDEL

用于删除一个或多个哈希表字段

HEXISTS

用于确定哈希字段是否存在

HGET

获取存储在 key 中的哈希字段的值

HGETALL

获取存储在 key 中的所有哈希字段值

HINCRBY

为存储在 key 中的哈希表指定字段做整数增量运算 

HKEYS

获取存储在 key 中的哈希表的所有字段

HLEN

获取存储在 key 中的哈希表的字段数量

HSET

用于设置存储在 key 中的哈希表字段的值

HVALS

用于获取哈希表中的所有值

String 命令

Strings(字符串)结构是 Redis 的基本数据类型之一,我们可以通过相关字符串命令对其进行操作,比如设置、检索、删除等等。字符串类型有诸多的应用场景,比如微博粉丝的关注与取消等。

下面介绍了 Redis 中常营的字符串命令:

命令

说明

APPEND

该命令将 value 追加到 key 所存储值的末尾

BITCOUNT

该命令用于计算字符串中,被设置为 1 的比特位的数量。

DECR

将 key 所存储的整数值减 1

DECRBY

将 key 所储存的值减去给定的递减值(decrement)

GET

用于检索指定键的值

GETBIT

对 key 所存储的字符串值,获取其指定偏移量上的位(bit)

GETRANGE

返回 key 中字符串值的子字符

GETSET

将给定 key 的值设置为 value,并返回 key 的旧值

INCR

将 key 所存储的整数值加 1

INCRBY

将 key 所储存的值加上给定的递增值(increment)

INCRBYFLOAT

将 key 所储存的值加上指定的浮点递增值(increment)

MGET

一次性获取一个或多个 key 所存储的值

MSET

该命令允许同时设置多个键值对

MSETNX

当指定的 key 都不存在时,用于设置多个键值对

SET

用于设定指定键的值

SETBIT

对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)

SETEX

将值 value 存储到 key中 ,并将 key 的过期时间设为 seconds (以秒为单位)

STRLEN

返回 key 所储存的字符串值的长度

SETNX

当 key 不存在时设置 key 的值

SETRANGE

从偏移量 offset 开始,使用指定的 value 覆盖的 key 所存储的部分字符串值

List 命令

List 是 Redis 中最常用数据类型之一。Redis 提供了诸多用于操作列表类型的命令,通过这些命令你可以实现将一个元素添加到列表的头部,或者尾部等诸多操作。

List 常用的命令如下所示:

命令

说明

BLPOP

用于删除并返回列表中的第一个元素(头部操作),如果列表中没有元素,就会发生阻塞,直到列表等待超时或发现可弹出元素为止

BRPOP

用于删除并返回列表中的最后一个元素(尾部操作),如果列表中没有元素,就会发生阻塞,直到列表等待超时或发现可弹出元素为止

BRPOPLPUSH

从列表中取出最后一个元素,并插入到另一个列表的头部。如果列表中没有元素,就会发生阻塞,直到等待超时或发现可弹出元素时为止

LINDEX

通过索引获取列表中的元素

LINSERT

指定列表中一个元素在它之前或之后插入另外一个元素

LLEN

用于获取列表的长度

LPOP

从列表的头部弹出元素,默认为第一个元素

LPUSH

在列表头部插入一个或者多个值

LPUSHX

当储存列表的 key 存在时,用于将值插入到列表头部

LRANGE

获取列表指定范围内的元素

LREM

表示从列表中删除元素与 value 相等的元素。count 表示删除的数量,为 0 表示全部移除

LSET

表示通过其索引设置列表中元素的值

LTRIM

保留列表中指定范围内的元素值

Set 命令

Redis set 数据类型由键值对组成,这些键值对具有无序、唯一的性质,这与 Python 的 set 相似。当集合中最后一个元素被移除之后,该数据结构也会被自动删除,内存也同样会被收回。

由于 set 集合可以实现去重,因此它有很多适用场景,比如用户抽奖活动,使用 set 集合可以保证同一用户不被第二次选中。

Redis set 常用的命令如下所示:

命令

说明

SADD

向集合中添加一个或者多个元素,并且自动去重

SCARD

返回集合中元素的个数

SDIFF

求两个或对多个集合的差集

SDIFFSTORE

求两个集合或多个集合的差集,并将结果保存到指定的集合(key)中

SINTER

求两个或多个集合的交集

SINTERSTORE

求两个或多个集合的交集,并将结果保存到指定的集合(key)中

SMEMBERS

查看集合中所有元素

SMOVE

将集合中的元素移动到指定的集合中

SPOP

弹出指定数量的元素

SRANDMEMBER

随机从集合中返回指定数量的元素,默认返回 1个

SREM

删除一个或者多个元素,若元素不存在则自动忽略

SUNION

求两个或者多个集合的并集

SUNIONSTORE

求两个或者多个集合的并集,并将结果保存到指定的集合(key)中

Zset 命令

zset 是 Redis 提供的最具特色的数据类型之一,首先它是一个 set,这保证了内部 value 值的唯一性,其次它给每个 value 添加了一个 score(分值)属性,通过对分值的排序实现了有序化。比如用 zset 结构来存储学生的成绩,value 值代表学生的 ID,score 则是的考试成绩。我们可以对成绩按分数进行排序从而得到学生的的名次。

下面列出了 zset 的常用命令,如下所示:

命令

说明

ZADD

用于将一个或多个成员添加到有序集合中,或者更新已存在成员的 score 值

ZCARD

获取有序集合中成员的数量

ZCOUNT

用于统计有序集合中指定 score 值范围内的元素个数

ZINCRBY

用于增加有序集合中成员的分值

ZINTERSTORE

求两个或者多个有序集合的交集,并将所得结果存储在新的 key 中

ZRANGE

返回有序集合中指定索引区间内的成员数量

ZRANGEBYLEX

返回有序集中指定字典区间内的成员数量

ZRANGEBYSCORE

返回有序集合中指定分数区间内的成员

ZRANK

返回有序集合中指定成员的排名

ZREM

移除有序集合中的一个或多个成员

ZREMRANGEBYRANK

移除有序集合中指定排名区间内的所有成员

ZREMRANGEBYSCORE

移除有序集合中指定分数区间内的所有成员

ZREVRANGE

返回有序集中指定区间内的成员,通过索引,分数从高到低

ZREVRANK

返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

ZSCORE

返回有序集中,指定成员的分数值

ZUNIONSTORE

求两个或多个有序集合的并集,并将返回结果存储在新的 key 中