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

SetRedis 的基本数据类型,值存储的是自动排重的集合,所有命令:

命名 描述
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

ZsetRedis 的基本数据类型,值存储的是排序集合,每个成员都关联了一个评分,所有命令:

命名 描述
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 类型实现,用于存储大量二进制位(01)的数据,每个位可以代表不同的状态或标识。所有命令:

命名 描述
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

GeospatialRedis 3.2 版本新增一种数据类型,底层的索引结构是ZSet。主要用于存储地理位置信息,并对存储的信息进行操作。所有命令:

命名 描述
GEOADD 将指定的地理空间位置(纬度、经度、名称)添加到指定的key
GEODIST 返回两个给定位置之间的距离
GEOHASH 返回一个或多个位置元素的 Geohash 表示
GEOPOS key里返回所有给定位置元素的位置(经度和纬度)
GEORADIUS 以给定的经纬度为中心,找出某一半径内的元素
GEORADIUS_RO GEORADIUS 命令的只读变体,只是它不支持可选的 STORESTOREDIST 参数
GEORADIUSBYMEMBER 找出位于指定范围内的元素,中心点是由给定的位置元素决定
GEORADIUSBYMEMBER_RO GEORADIUSBYMEMBER 命令的只读变体,只是它不支持可选的 STORESTOREDIST 参数
GEOSEARCH 扩展了GEORADIUS命令,因此除了支持在圆形区域内搜索外,还支持在矩形区域内搜索
GEOSEARCHSTORE 类似于GEOSEARCH,但它将结果存储在目标键中

2.9 Stream

Redis Stream5.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的长度,如果已经超长会进行截取