Redis 命令大致可分为以下几种:
- 服务端(server)命令
- 客户端(client)命令
- 键命令(key)
- 数据类型命令
- 功能应用命令
这里介绍了 Redis 中经常使用的命令,包括键命令和数据类型命令,其中数据类型命令包括 String、List、Hash、Set 以及 Sorted Set。
键(Key)命令
我们知道 Redis 是 key-value 型数据库,使用 key 对 value 进行存储,因此,键(Key)命令是 Redis 中经常使用的一类命令。常用的键命令如下所示:
命令 | 说明 |
若键存在的情况下,该命令用于删除键 | |
用于序列化给定 key ,并返回被序列化的值 | |
用于检查键是否存在,若存在则返回 1,否则返回 0 | |
设置 key 的过期时间,以秒为单位 | |
该命令与 EXPIRE 相似,用于为 key 设置过期时间,不同在于,它的时间参数值采用的是时间戳格式。 | |
此命令用于查找与指定 pattern 匹配的 key | |
将当前数据库中的 key 移动至指定的数据库中(默认存储为 0 库,可选 1-15中的任意库) | |
该命令用于删除 key 的过期时间,然后 key 将一直存在,不会过期 | |
设置 key 的过期,以毫秒为单位 | |
从当前数据库中随机返回一个 key | |
修改 key 的名称 | |
基于游标的迭代器,用于迭代数据库中存在的所有键,cursor 指的是迭代游标 | |
用于检查 key 还剩多长时间过期,以秒为单位 | |
该命令用于获取 value 的数据类型。 |
Hash 命令
Hash(哈希散列)是 Redis 基本数据类型之一,它以字符串映射表的形式来进行存储。Hash 特别适合用于存储对象。常用的命令如下所示:
命令 | 说明 |
用于删除一个或多个哈希表字段 | |
用于确定哈希字段是否存在 | |
获取存储在 key 中的哈希字段的值 | |
获取存储在 key 中的所有哈希字段值 | |
为存储在 key 中的哈希表指定字段做整数增量运算 | |
获取存储在 key 中的哈希表的所有字段 | |
获取存储在 key 中的哈希表的字段数量 | |
用于设置存储在 key 中的哈希表字段的值 | |
用于获取哈希表中的所有值 |
String 命令
Strings(字符串)结构是 Redis 的基本数据类型之一,我们可以通过相关字符串命令对其进行操作,比如设置、检索、删除等等。字符串类型有诸多的应用场景,比如微博粉丝的关注与取消等。
下面介绍了 Redis 中常营的字符串命令:
命令 | 说明 |
该命令将 value 追加到 key 所存储值的末尾 | |
该命令用于计算字符串中,被设置为 1 的比特位的数量。 | |
将 key 所存储的整数值减 1 | |
将 key 所储存的值减去给定的递减值(decrement) | |
用于检索指定键的值 | |
对 key 所存储的字符串值,获取其指定偏移量上的位(bit) | |
返回 key 中字符串值的子字符 | |
将给定 key 的值设置为 value,并返回 key 的旧值 | |
将 key 所存储的整数值加 1 | |
将 key 所储存的值加上给定的递增值(increment) | |
将 key 所储存的值加上指定的浮点递增值(increment) | |
一次性获取一个或多个 key 所存储的值 | |
该命令允许同时设置多个键值对 | |
当指定的 key 都不存在时,用于设置多个键值对 | |
用于设定指定键的值 | |
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit) | |
将值 value 存储到 key中 ,并将 key 的过期时间设为 seconds (以秒为单位) | |
返回 key 所储存的字符串值的长度 | |
当 key 不存在时设置 key 的值 | |
从偏移量 offset 开始,使用指定的 value 覆盖的 key 所存储的部分字符串值 |
List 命令
List 是 Redis 中最常用数据类型之一。Redis 提供了诸多用于操作列表类型的命令,通过这些命令你可以实现将一个元素添加到列表的头部,或者尾部等诸多操作。
List 常用的命令如下所示:
命令 | 说明 |
用于删除并返回列表中的第一个元素(头部操作),如果列表中没有元素,就会发生阻塞,直到列表等待超时或发现可弹出元素为止 | |
用于删除并返回列表中的最后一个元素(尾部操作),如果列表中没有元素,就会发生阻塞,直到列表等待超时或发现可弹出元素为止 | |
从列表中取出最后一个元素,并插入到另一个列表的头部。如果列表中没有元素,就会发生阻塞,直到等待超时或发现可弹出元素时为止 | |
通过索引获取列表中的元素 | |
指定列表中一个元素在它之前或之后插入另外一个元素 | |
用于获取列表的长度 | |
从列表的头部弹出元素,默认为第一个元素 | |
在列表头部插入一个或者多个值 | |
当储存列表的 key 存在时,用于将值插入到列表头部 | |
获取列表指定范围内的元素 | |
表示从列表中删除元素与 value 相等的元素。count 表示删除的数量,为 0 表示全部移除 | |
表示通过其索引设置列表中元素的值 | |
保留列表中指定范围内的元素值 |
Set 命令
Redis set 数据类型由键值对组成,这些键值对具有无序、唯一的性质,这与 Python 的 set 相似。当集合中最后一个元素被移除之后,该数据结构也会被自动删除,内存也同样会被收回。
由于 set 集合可以实现去重,因此它有很多适用场景,比如用户抽奖活动,使用 set 集合可以保证同一用户不被第二次选中。
Redis set 常用的命令如下所示:
命令 | 说明 |
向集合中添加一个或者多个元素,并且自动去重 | |
返回集合中元素的个数 | |
求两个或对多个集合的差集 | |
求两个集合或多个集合的差集,并将结果保存到指定的集合(key)中 | |
求两个或多个集合的交集 | |
求两个或多个集合的交集,并将结果保存到指定的集合(key)中 | |
查看集合中所有元素 | |
将集合中的元素移动到指定的集合中 | |
弹出指定数量的元素 | |
随机从集合中返回指定数量的元素,默认返回 1个 | |
删除一个或者多个元素,若元素不存在则自动忽略 | |
求两个或者多个集合的并集 | |
求两个或者多个集合的并集,并将结果保存到指定的集合(key)中 |
Zset 命令
zset 是 Redis 提供的最具特色的数据类型之一,首先它是一个 set,这保证了内部 value 值的唯一性,其次它给每个 value 添加了一个 score(分值)属性,通过对分值的排序实现了有序化。比如用 zset 结构来存储学生的成绩,value 值代表学生的 ID,score 则是的考试成绩。我们可以对成绩按分数进行排序从而得到学生的的名次。
下面列出了 zset 的常用命令,如下所示:
命令 | 说明 |
用于将一个或多个成员添加到有序集合中,或者更新已存在成员的 score 值 | |
获取有序集合中成员的数量 | |
用于统计有序集合中指定 score 值范围内的元素个数 | |
用于增加有序集合中成员的分值 | |
求两个或者多个有序集合的交集,并将所得结果存储在新的 key 中 | |
返回有序集合中指定索引区间内的成员数量 | |
返回有序集中指定字典区间内的成员数量 | |
返回有序集合中指定分数区间内的成员 | |
返回有序集合中指定成员的排名 | |
移除有序集合中的一个或多个成员 | |
移除有序集合中指定排名区间内的所有成员 | |
移除有序集合中指定分数区间内的所有成员 | |
返回有序集中指定区间内的成员,通过索引,分数从高到低 | |
返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 | |
返回有序集中,指定成员的分数值 | |
求两个或多个有序集合的并集,并将返回结果存储在新的 key 中 |