1. Redis命令大全
提示: 本篇文档会包含所有的命令,但是仅做简单介绍,后续会分篇介绍重要的命令,这里主要起到一个总览导航作用,点击命令会跳转到对应的官方详细介绍。
2. 命令手册
2.1 String
字符串是 Redis
的基本数据类型,值是字符串类型,所有命令:
命名 | 描述 |
---|---|
APPEND | 将 value 追加到 key 原来的值的末尾 |
DECR | 将 key 中储存的数字值减一 |
DECRBY | 将 key 所储存的值减去给定的减量值( decrement ) |
GET | 设置指定 key 的值 |
GETDEL | 获取 key 的值并删除该 key |
GETEX | 获取 key 的值,并可选择设置其过期时间 |
GETRANGE | 返回 key 中字符串值的子字符 |
GETSET | 将给定 key 的值设为value ,并返回 key 的旧值 |
INCR | 将 key 中储存的数字值增一 |
INCRBY | 将 key 所储存的值加上给定的增量值( increment ) |
INCRBYFLOAT | 将 key 所储存的值加上给定的浮点增量值 ( increment ) |
LCS | 实现了最长公共子序列算法,可用于评估字符串的相似程度 |
MGET | 获取所有(一个或多个)给定 key 的值 |
MSET | 同时设置一个或多个 key-value 对 |
MSETNX | 同时设置一个或多个 key-value 对 |
PSETEX | 以毫秒为单位设置 key 的生存时间 |
SET | 设置指定 key 的值 |
SETEX | 设置 key 的值为 value 同时将过期时间设为 seconds |
SETNX | 只有在 key 不存在时设置 key 的值 |
SETRANGE | 从偏移量 offset 开始用value 覆写给定 key 所储存的字符串值 |
STRLEN | 返回 key 所储存的字符串值的长度 |
SUBSTR | 返回字符串值的子字符串,由偏移量开始和结束(两者都包含在内)决定 |
2.2 Hash
哈希散列是 Redis
基本数据类型,值中存储的是 Hash
表,特别适合用于存储对象,所有命令:
命名 | 描述 |
---|---|
HDEL | 用于删除哈希表中一个或多个字段 |
HEXISTS | 用于判断哈希表中字段是否存在 |
HEXPIRE | 设置一个或多个字段的过期时间,秒为单位 |
HEXPIREAT | HEXPIREAT 具有与HEXPIRE 相同的效果和语义,但它没有指定TTL (生存时间)的秒数,而是使用Unix 时间戳(以秒为单位) |
HEXPIRETIME | 给定key 字段将在该时间点过期,返回自Unix 时间戳(以秒为单位) |
HGET | 获取存储在哈希表中指定字段的值 |
HGETALL | 获取在哈希表中指定 key的所有字段和值 |
HINCRBY | 为存储在 key 中的哈希表指定字段做整数增量运算 |
HKEYS | 获取存储在 key 中的哈希表的所有字段 |
HLEN | 获取存储在 key 中的哈希表的字段数量 |
HMGET | 用于获取存储在 key 中的哈希表字段的值 |
HMSET | 用于设置存储在 key 中的哈希表字段的值 |
HPERSIST | 删除key 字段上现有的过期时间 |
HPEXPIRE | 与HEXPIRE 类似,以毫秒为单位 |
HPEXPIRETIME | 与HEXPIRETIME 具有相同的语义,使用Unix 时间戳(以毫秒为单位) |
HPTTL | 与HTTL 一样,返回具有过期设置的字段的剩余TTL (生存时间),但以毫秒而不是秒为单位 |
HRANDFIELD | 随机获取字段和值 |
HSCAN | 返回的每个元素都是一个元组,每一个元组元素由一个字段和值组成 |
HSET | 为哈希表中的字段赋值 |
HSETNX | 用于为哈希表中不存在的的字段赋值 |
HSTRLEN | 返回字段关联的值的字符串长度,如果键或字段不存在,则返回0 |
HTTL | 返回具有过期设置的字段的剩余TTL (生存时间),秒为单位 |
HVALS | 用于获取哈希表中的所有值 |
2.3 List
列表是 Redis
的基本数据类型,值存储的是列表,所有命令:
命名 | 描述 |
---|---|
LMOVE | 删除源列表的第一个或最后一个元素,并移入到目标列表中的第一个或最后一个位置 |
LMPOP | 弹出一个或多个元素 |
BLMOVE | LMOVE 的阻塞变体 |
BLMPOP | LMPOP 的阻塞变体 |
BLPOP | 移出并获取列表的第一个元素 |
BRPOP | 移出并获取列表的最后一个元素 |
BRPOPLPUSH | 从列表中弹出一个值,并将该值插入到另外一个列表中并返回它 |
LINDEX | 通过索引获取列表中的元素 |
LINSERT | 在列表的元素前或者后插入元素 |
LLEN | 获取列表长度 |
LPOP | 移出并获取列表的第一个元素 |
LPOS | 返回列表中匹配元素的索引 |
LPUSH | 将一个或多个值插入到列表头部 |
LPUSHX | 将一个值插入到已存在的列表头部 |
LRANGE | 获取列表指定范围内的元素 |
LREM | 移除列表元素 |
LSET | 通过索引设置列表元素的值 |
LTRIM | 对一个列表进行修剪 |
RPOP | 移除并获取列表最后一个元素 |
RPOPLPUSH | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
RPUSH | 在列表中添加一个或多个值 |
RPUSHX | 为已存在的列表添加值 |
2.4 Set
Set
是 Redis
的基本数据类型,值存储的是自动排重的集合,所有命令:
命名 | 描述 |
---|---|
SADD | 向集合添加一个或多个成员 |
SCARD | 获取集合的成员数 |
SDIFF | 返回给定所有集合的差集 |
SDIFFSTORE | 返回给定所有集合的差集并存储在 destination 中 |
SINTER | 返回给定所有集合的交集 |
SINTERCARD | 类似于SINTER ,但它不返回结果集,而是只返回结果的基数。返回集合的基数,该基数将由所有给定集合的交集产生 |
SINTERSTORE | 返回给定所有集合的交集并存储在 destination 中 |
SISMEMBER | 判断 member 元素是否是集合 key 的成员 |
SMEMBERS | 获取一个集合的所有成员 |
SMISMEMBER | 从存储在 key 处的集合值中返回一个随机元素 |
SMOVE | 将 member 元素从 source 集合移动到 destination 集合 |
SPOP | 移除并返回集合中的一个随机元素 |
SRANDMEMBER | 返回集合中一个或多个随机数 |
SREM | 移除集合中一个或多个成员 |
SSCAN | 迭代集合中的元素 |
SUNION | 返回所有给定集合的并集 |
SUNIONSTORE | 所有给定集合的并集存储在 destination 集合中 |
2.5 Sorted Set
Zset
是 Redis
的基本数据类型,值存储的是排序集合,每个成员都关联了一个评分,所有命令:
命名 | 描述 |
---|---|
BZMPOP | 按照指定的排序方式推出多个队列中指定数量的元素 |
BZPОPMAX | ZPOPMAX 的阻塞版本,作用相同,只是在目标集合中没有元素时会阻塞,timeout 参数指定了过期时间 (0 表示永不超时) |
BZPOPMIN | 与 ZPOPMAX 一样,只是返回 score 最小的 |
ZADD | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZCARD | 获取有序集合的成员数 |
ZCOUNT | 计算在有序集合中指定区间分数的成员数 |
ZDIFF | 返回集合之间的差集 |
ZDIFFSTORE | 返回集合之间的差集,并将结果存储在另一个新的有序集合中 |
ZINCRBY | 有序集合中对指定成员的分数加上增量increment |
ZINTER | 用于计算多个有序集合的交集 |
ZINTERCARD | 用于计算多个有序集合的交集,并返回成员个数 |
ZINTERSTORE | 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中 |
ZLEXCOUNT | 计算有序集合中指定区间内成员的数量 |
ZMPOP | 弹出一个或多个成员 |
ZMSCORE | 从有序集合中获取多个成员的分数(score ) |
ZPOPMAX | 用于删除并返回集合中分数(score )最高的一个或多个元素。如果集合为空,则命令不执行任何操作 |
ZPOPMIN | 用于删除并返回集合中分数(score )最低的一个或多个元素。如果集合为空,则命令不执行任何操作 |
ZRANDMEMBER | 随机获取一个或多个元素 |
ZRANGE | 获取指定范围内的成员 |
ZRANGEBYLEX | 根据成员名称的字典顺序来返回有序集合中指定区间的成员。注意是基于成员名称的字典顺序,而不是分数(score )的大小 |
ZRANGEBYSCORE | 返回有序集中指定分数区间内的成员,分数从高到低排序 |
ZRANGESTORE | 返回集合中指定排名范围内的成员,并将结果存储到指定key 中 |
ZRANK | 返回有序集合中指定成员的索引 |
ZREM | 移除有序集合中的一个或多个成员 |
ZREMRANGEBYLEX | 移除有序集合中给定的字典区间的所有成员 |
ZREMRANGEBYRANK | 移除有序集合中给定的排名区间的所有成员 |
ZREMRANGEBYSCORE | 移除有序集合中给定的分数区间的所有成员 |
ZREVRANGE | 返回有序集中指定区间内的成员,通过索引,分数从高到底 |
ZREVRANGEBYLEX | 根据字典范围返回成员,返回的成员顺序是反向的,即从高到低的字典顺序 |
ZREVRANGEBYSCORE | 返回指定分数范围内的成员,并按照分数从高到低进行排序 |
ZREVRANK | 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 |
ZSCAN | 迭代有序集合中的元素(包括元素成员和元素分值) |
ZSCORE | 返回有序集中,成员的分数值 |
ZUNION | 计算一个或多个有序集的并集 |
ZUNIONSTORE | 计算一个或多个有序集的并集,并存储在新的 key 中 |
2.6 Bitmap
Bitmap
基于 Redis String
类型实现,用于存储大量二进制位(0
或1
)的数据,每个位可以代表不同的状态或标识。所有命令:
命名 | 描述 |
---|---|
BITCOUNT | 统计给定范围内为1 的位的数量 |
BITFIELD | 对字符串类型的key 进行基于位的操作 |
BITFIELD_RO | 使用BITFIELD 命令进行只读操作 |
BITOP | 执行针对多个 Bitmap 的并集、交集、差集等位操作 |
BITPOS | 查找指定位值的第一个位置 |
GETBIT | 获取指定偏移量处的位状态 |
SETBIT | 设置指定偏移量处的位状态 |
2.7 HyperLogLog
Redis 2.8.9
版本引入了 HyperLogLog
用于基数统计的算法,用于估算一个集合中不同元素的数量(基数),所有命令:
命名 | 描述 |
---|---|
PFADD | 添加指定元素到 HyperLogLog 中 |
PFCOUNT | 返回给定 HyperLogLog 的基数估算值 |
PFDEBUG | 内部命令,仅用于开发测试 |
PFMERGE | 将多个 HyperLogLog 合并为一个 |
PFSELFTEST | 内部命令,仅用于开发测试 |
2.8 Geospatial
Geospatial
是 Redis 3.2
版本新增一种数据类型,底层的索引结构是ZSet
。主要用于存储地理位置信息,并对存储的信息进行操作。所有命令:
命名 | 描述 |
---|---|
GEOADD | 将指定的地理空间位置(纬度、经度、名称)添加到指定的key 中 |
GEODIST | 返回两个给定位置之间的距离 |
GEOHASH | 返回一个或多个位置元素的 Geohash 表示 |
GEOPOS | 从 key 里返回所有给定位置元素的位置(经度和纬度) |
GEORADIUS | 以给定的经纬度为中心,找出某一半径内的元素 |
GEORADIUS_RO | GEORADIUS 命令的只读变体,只是它不支持可选的 STORE 和 STOREDIST 参数 |
GEORADIUSBYMEMBER | 找出位于指定范围内的元素,中心点是由给定的位置元素决定 |
GEORADIUSBYMEMBER_RO | GEORADIUSBYMEMBER 命令的只读变体,只是它不支持可选的 STORE 和 STOREDIST 参数 |
GEOSEARCH | 扩展了GEORADIUS 命令,因此除了支持在圆形区域内搜索外,还支持在矩形区域内搜索 |
GEOSEARCHSTORE | 类似于GEOSEARCH ,但它将结果存储在目标键中 |
2.9 Stream
Redis Stream
是 5.0
版本中引入的一种新的数据结构,用于实现简单但功能强大的消息传递模式。所有命令:
命名 | 描述 |
---|---|
XACK | 确认消费者已经成功处理从 Stream 中获取的消息 |
XADD | 添加消息到队列末尾 |
XAUTOCLAIM | 转移符合指定条件的待处理流条目的所有权 |
XCLAIM | 改变待处理消息的所有权 |
XDEL | 删除消息 |
XGROUP CREATE | 为存储在key 的流创建一个新的消费者组 |
XGROUP CREATECONSUMER | 要在存储在key 的流的消费者组中创建一个消费者 |
XGROUP DELCONSUMER | 消费者组中删除一个消费者 |
XGROUP DESTROY | 删除一个已存在的消费者组 |
XGROUP SETID | 为消费者组设置最后传递的ID |
XINFO CONSUMERS | 返回消费者组中的消费者列表 |
XINFO GROUPS | 返回消费者组列表 |
XINFO STREAM | 存储在的key 流的相关信息 |
XLEN | 获取 Stream 中的消息长度 |
XPENDING | 通过消费者组从流中获取数据但不确认这些数据,会产生待处理条目 |
XRANGE | 获取消息列表(可以指定范围) |
XREAD | 获取消息(阻塞/非阻塞),返回大于指定ID 的消息 |
XREADGROUP | XREAD 命令的一个特殊版本,支持消费者组 |
XREVRANGE | 和 XRANGE 相比区别在于反向获取,ID 从大到小 |
XSETID | 内部命令。它用于主节点来复制流的最后传递的ID |
XTRIM | 限制 Stream 的长度,如果已经超长会进行截取 |