*Redis 命令手册

Redis 命令手册介绍了 Redis 常用键命令和数据类型命令,是目前最全的 Redis 命令手册。

*键(Key)命令

Redis 是 key-value 型数据库,键(Key)命令是 Redis 中经常使用的命令。常用的键命令如下所示:

命令 描述
DEL 删除一个或多个 key
DUMP 序列化给定 key 的值
EXISTS 检查 key 是否存在
EXPIRE 设置 key 的过期时间(秒)
EXPIREAT 设置 key 的过期时间(UNIX 时间戳)
KEYS 查找所有匹配指定模式的 key
MIGRATE 原子性地将 key 迁移到另一个 Redis 实例
MOVE 将 key 移动到另一个数据库
OBJECT 查看 Redis 对象的内部信息
PERSIST 移除 key 的过期时间,使其永久有效
PEXPIRE 设置 key 的过期时间(毫秒)
PEXPIREAT 设置 key 的过期时间(毫秒级 UNIX 时间戳)
PTTL 获取 key 的剩余过期时间(毫秒)
RANDOMKEY 从数据库中随机返回一个 key
RENAME 重命名 key
RENAMENX 仅当新 key 不存在时才重命名
RESTORE 使用 DUMP 序列化的值创建 key
SCAN 增量遍历数据库中的 key
SORT 对列表、集合或有序集合的元素排序
TOUCH 更新 key 的最后访问时间
TTL 获取 key 的剩余过期时间(秒)
TYPE 获取 key 存储的数据类型
UNLINK 异步删除一个或多个 key
WAIT 等待所有写入命令同步到指定副本数

*String 命令

Strings(字符串)结构是 Redis 的基本数据类型,值value是字符串类型,常用命令:

命令 描述
APPEND 将值追加到指定 key 的末尾
BITCOUNT 统计字符串中被设置为 1 的位数
BITFIELD 对字符串执行位域级别的整数操作
BITOP 在多个字符串之间执行位运算
BITPOS 查找字符串中第一个被设置或清除的位
DECR 将 key 的整数值减 1
DECRBY 将 key 的整数值减去指定数量
GET 获取指定 key 的值
GETBIT 获取字符串指定偏移位置的位值
GETRANGE 获取字符串指定范围内的子串
GETSET 设置 key 的值并返回旧值
INCR 将 key 的整数值加 1
INCRBY 将 key 的整数值加上指定数量
INCRBYFLOAT 将 key 的浮点数值加上指定数量
MGET 获取多个 key 的值
MSET 同时设置多个 key-value
MSETNX 仅当所有 key 不存在时才同时设置
PSETEX 设置 key 的值并指定过期时间(毫秒)
SET 设置 key 的字符串值
SETBIT 设置或清除字符串指定偏移位置的位
SETEX 设置 key 的值并指定过期时间(秒)
SETNX 仅当 key 不存在时才设置值
SETRANGE 从指定偏移量开始覆盖字符串
STRALGO 在字符串上执行算法(如 LCS)
STRLEN 获取 key 对应的字符串长度

*Hash 命令

Hash(哈希散列)是 Redis 基本数据类型,值value 中存储的是 hash 表。Hash 特别适合用于存储对象。常用的命令:

命令 描述
HDEL 删除哈希表中的一个或多个字段
HEXISTS 检查哈希表中指定字段是否存在
HGET 获取哈希表中指定字段的值
HGETALL 获取哈希表中所有字段和值
HINCRBY 将哈希表字段的整数值增加指定数量
HINCRBYFLOAT 将哈希表字段的浮点数值增加指定数量
HKEYS 获取哈希表中所有字段名
HLEN 获取哈希表中字段的数量
HMGET 获取哈希表中多个字段的值
HMSET 同时设置哈希表中的多个字段(已弃用,推荐 HSET)
HSCAN 增量遍历哈希表的字段和值
HSET 设置哈希表中指定字段的值
HSETNX 仅当字段不存在时才设置哈希表字段
HSTRLEN 获取哈希表中字段值的长度
HVALS 获取哈希表中所有字段的值

*List 命令

List 是 Redis 中最常用数据类型。值value 中存储的是列表。

命令 描述
BLMOVE 阻塞地从列表弹出元素并推入另一列表
BLPOP 阻塞地移除并获取列表第一个元素
BRPOP 阻塞地移除并获取列表最后一个元素
BRPOPLPUSH 从列表弹出元素并推入另一列表(已弃用,推荐 BLMOVE)
LINDEX 通过索引获取列表中的元素
LINSERT 在列表指定元素前或后插入新元素
LLEN 获取列表长度
LMOVE 从列表弹出元素并推入另一列表
LPOP 移除并获取列表第一个元素
LPOS 返回列表中匹配元素的索引位置
LPUSH 将一个或多个元素插入列表头部
LPUSHX 仅当列表存在时才插入元素到头部
LRANGE 获取列表指定范围内的元素
LREM 移除列表中指定数量的匹配元素
LSET 通过索引设置列表元素的值
LTRIM 将列表修剪到指定范围
RPOP 移除并获取列表最后一个元素
RPOPLPUSH 从列表弹出元素并推入另一列表(已弃用,推荐 LMOVE)
RPUSH 将一个或多个元素追加到列表尾部
RPUSHX 仅当列表存在时才追加元素到尾部

*Set 命令

命令 描述
SADD 向集合中添加一个或多个成员
SCARD 获取集合的成员数量
SDIFF 返回多个集合的差集
SDIFFSTORE 计算差集并存储到新集合
SINTER 返回多个集合的交集
SINTERSTORE 计算交集并存储到新集合
SISMEMBER 判断成员是否在集合中
SMEMBERS 获取集合中的所有成员
SMISMEMBER 判断多个成员是否在集合中
SMOVE 将成员从一个集合移动到另一个集合
SPOP 移除并返回集合中的一个或多个随机成员
SRANDMEMBER 随机获取集合中的一个或多个成员
SREM 从集合中移除一个或多个成员
SSCAN 增量遍历集合中的元素
SUNION 返回多个集合的并集
SUNIONSTORE 计算并集并存储到新集合

*Zset 命令

下表列出了 Redis 有序集合的基本命令

命令 描述
BZPOPMAX 阻塞地从有序集合中移除并返回分数最高的元素
BZPOPMIN 阻塞地从有序集合中移除并返回分数最低的元素
ZADD 向有序集合添加成员或更新分数
ZCARD 获取有序集合的成员数量
ZCOUNT 统计指定分数范围内的成员数
ZINCRBY 增加有序集合中成员的分数
ZINTER 返回多个有序集合的交集
ZINTERSTORE 计算交集并存储到新有序集合
ZLEXCOUNT 统计指定字典区间内的成员数
ZMSCORE 获取多个成员的分数
ZPOPMAX 移除并返回分数最高的成员
ZPOPMIN 移除并返回分数最低的成员
ZRANGE 按索引返回指定范围的成员
ZRANGEBYLEX 按字典范围返回成员(已弃用,推荐 ZRANGE)
ZRANGEBYSCORE 按分数范围返回成员(已弃用,推荐 ZRANGE)
ZRANK 获取成员在有序集合中的排名
ZREM 移除有序集合中的一个或多个成员
ZREMRANGEBYLEX 移除指定字典区间内的成员
ZREMRANGEBYRANK 移除指定排名范围内的成员
ZREMRANGEBYSCORE 移除指定分数范围内的成员
ZREVRANGE 按索引倒序返回指定范围的成员
ZREVRANGEBYLEX 按字典范围倒序返回成员
ZREVRANGEBYSCORE 按分数范围倒序返回成员
ZREVRANK 获取成员的倒序排名
ZSCAN 增量遍历有序集合的成员和分数
ZSCORE 获取成员的分数
ZUNION 返回多个有序集合的并集
ZUNIONSTORE 计算并集并存储到新有序集合

*Redis 管理 redis 服务相关命令

下表列出了管理 redis 服务相关的命令

命令 描述
ACL CAT 列出 ACL 命令类别或某类别下的命令
ACL DELUSER 删除指定的 ACL 用户
ACL GENPASS 生成 ACL 用户的安全密码
ACL GETUSER 获取指定 ACL 用户的权限规则
ACL HELP 显示 ACL 子命令的帮助信息
ACL LIST 以配置文件格式列出当前所有 ACL 规则
ACL LOAD 从 ACL 配置文件重新加载访问控制列表
ACL LOG 查看因 ACL 限制而被拒绝的命令记录
ACL SAVE 将当前 ACL 规则保存到配置文件
ACL SETUSER 修改或创建 ACL 用户及其权限规则
ACL USERS 列出所有已配置的 ACL 用户名
ACL WHOAMI 返回当前连接对应的 ACL 用户名
BGREWRITEAOF 异步重写 AOF 持久化文件
BGSAVE 异步保存数据集到 RDB 文件
COMMAND 获取所有 Redis 命令的详细信息
COMMAND COUNT 获取 Redis 命令的总数
COMMAND GETKEYS 提取命令中的 key 参数
COMMAND INFO 获取指定命令的详细信息
CONFIG GET 获取指定配置参数的值
CONFIG RESETSTAT 重置 INFO 的统计信息
CONFIG REWRITE 将内存中的配置写入配置文件
CONFIG SET 设置配置参数的值
DBSIZE 返回当前数据库的 key 数量
DEBUG OBJECT 获取 key 的调试信息
DEBUG SEGFAULT 使服务器崩溃(仅用于测试)
FLUSHALL 删除所有数据库中的所有 key
FLUSHDB 删除当前数据库中的所有 key
INFO 获取服务器的详细信息和统计指标
LASTSAVE 获取最后一次成功保存 RDB 的时间戳
LATENCY DOCTOR 输出延迟问题的诊断报告
LATENCY GRAPH 返回事件的延迟 ASCII 图表
LATENCY HELP 显示延迟子命令的帮助信息
LATENCY HISTORY 返回事件的延迟历史记录
LATENCY LATEST 返回所有事件的最新延迟样本
LATENCY RESET 重置一个或多个事件的延迟数据
LOLWUT 显示 ASCII 艺术和 Redis 版本
MEMORY DOCTOR 输出内存问题的诊断报告
MEMORY HELP 显示内存子命令的帮助信息
MEMORY MALLOC-STATS 显示内存分配器的内部统计
MEMORY PURGE 要求分配器释放内存
MEMORY STATS 显示内存使用的详细信息
MEMORY USAGE 估算 key 的内存使用量
MODULE LIST 列出服务器已加载的所有模块
MODULE LOAD 从指定路径加载模块
MODULE UNLOAD 卸载指定的模块
MONITOR 实时监听服务器接收到的所有命令
PSYNC 主从复制的部分同步命令
REPLICAOF 配置当前实例为另一实例的副本
ROLE 返回当前实例在复制中的角色
SAVE 同步保存数据集到 RDB 文件
SHUTDOWN 保存数据并关闭服务器
SLAVEOF 配置当前实例为另一实例的副本(已弃用)
SLOWLOG 管理 Redis 慢查询日志
SWAPDB 交换两个数据库的内容
SYNC 主从复制的内部同步命令
TIME 返回当前服务器时间

*Redis 发布订阅命令

下表列出了 Redis 发布订阅相关命令:

命令 描述
PSUBSCRIBE 订阅匹配指定模式的所有频道
PUBLISH 向指定频道发布消息
PUBSUB 查看发布订阅系统的状态
PUNSUBSCRIBE 退订匹配指定模式的所有频道
SUBSCRIBE 订阅一个或多个频道
UNSUBSCRIBE 退订一个或多个频道

*Redis 事务命令

下表列出了 Redis 事务的相关命令

命令 描述
DISCARD 放弃事务中的所有命令
EXEC 执行事务中的所有命令
MULTI 标记事务块的开始
UNWATCH 取消对所有 key 的监视
WATCH 监视一个或多个 key

*Redis 连接命令

下表列出了用于 Redis 连接相关的命令

命令 描述
AUTH 验证连接密码(支持用户名+密码)
CLIENT CACHING 启用或禁用下一请求的客户端缓存追踪
CLIENT GETNAME 获取当前连接的名称
CLIENT GETREDIR 获取客户端缓存重定向的目标 ID
CLIENT ID 返回当前连接的客户端 ID
CLIENT KILL 关闭指定的客户端连接
CLIENT LIST 获取所有客户端连接的详细信息
CLIENT PAUSE 暂停处理客户端命令一段时间
CLIENT REPLY 启用或禁用命令回复
CLIENT SETNAME 设置当前连接的名称
CLIENT TRACKING 启用或禁用服务器辅助客户端缓存
CLIENT UNBLOCK 解除被阻塞命令阻塞的客户端
ECHO 回显输入的字符串
HELLO 切换 Redis 协议版本(RESP2/RESP3)
PING 测试服务器连接是否正常
QUIT 关闭当前连接
SELECT 切换到指定的数据库

*Redis 脚本 命令

命令 描述
EVAL 执行 Lua 脚本
EVALSHA 通过 SHA1 摘要执行已加载的 Lua 脚本
SCRIPT DEBUG 设置 Lua 脚本的调试模式
SCRIPT EXISTS 检查脚本是否已加载到缓存
SCRIPT FLUSH 清空 Lua 脚本缓存
SCRIPT KILL 终止正在执行的 Lua 脚本
SCRIPT LOAD 将 Lua 脚本加载到缓存并返回 SHA1

*Redis HyperLogLog 命令

命令 描述
PFADD 向 HyperLogLog 添加元素
PFCOUNT 获取 HyperLogLog 的近似基数
PFMERGE 合并多个 HyperLogLog

*Redis 地理位置(geo) 命令

命令 描述
GEOADD 向地理空间索引添加位置
GEODIST 返回两个位置之间的距离
GEOHASH 返回位置的 Geohash 字符串
GEOPOS 返回位置的经纬度坐标
GEORADIUS 查找指定半径内的位置(已弃用,推荐 GEOSEARCH)
GEORADIUSBYMEMBER 查找指定半径内的位置(已弃用,推荐 GEOSEARCH)

*Redis Stream 命令

下表列出了 Redis Stream 相关命令

命令 描述
XACK 确认消费者组中消息已被处理
XADD 向 Stream 追加消息
XCLAIM 转移待处理消息的所有权
XDEL 从 Stream 中删除指定消息
XGROUP 创建、销毁和管理消费者组
XINFO 获取 Stream 和消费者组的详细信息
XLEN 获取 Stream 中的消息数量
XPENDING 获取消费者组的待处理消息列表
XRANGE 按 ID 范围获取 Stream 中的消息
XREAD 从多个 Stream 读取消息(可阻塞)
XREADGROUP 以消费者组方式读取 Stream 消息
XREVRANGE 按 ID 倒序获取 Stream 中的消息
XTRIM 将 Stream 修剪到指定大小

*Redis 集群命令

下表列出了 Redis 集群相关命令

命令 描述
CLUSTER ADDSLOTS 为当前节点分配新的哈希槽
CLUSTER BUMPEPOCH 推进集群配置纪元
CLUSTER COUNT-FAILURE-REPORTS 返回节点的故障报告数量
CLUSTER COUNTKEYSINSLOT 返回哈希槽中的本地 key 数量
CLUSTER DELSLOTS 将哈希槽设置为未绑定状态
CLUSTER FAILOVER 强制副本节点执行手动故障转移
CLUSTER FLUSHSLOTS 删除节点自身的槽信息
CLUSTER FORGET 从节点表中移除指定节点
CLUSTER GETKEYSINSLOT 返回哈希槽中的 key 名称
CLUSTER INFO 获取集群节点的状态信息
CLUSTER KEYSLOT 返回 key 对应的哈希槽编号
CLUSTER MEET 将新节点加入集群
CLUSTER MYID 返回当前节点的 ID
CLUSTER NODES 获取集群节点的配置信息
CLUSTER REPLICAS 列出主节点的所有副本节点
CLUSTER REPLICATE 将当前节点配置为指定主节点的副本
CLUSTER RESET 重置集群节点的状态
CLUSTER SAVECONFIG 将集群状态强制保存到磁盘
CLUSTER SET-CONFIG-EPOCH 设置新节点的配置纪元
CLUSTER SETSLOT 将哈希槽绑定到指定节点
CLUSTER SLAVES 列出主节点的所有副本节点(已弃用,推荐 CLUSTER REPLICAS)
CLUSTER SLOTS 获取哈希槽到节点的映射关系
READONLY 启用副本节点的只读查询
READWRITE 禁用副本节点的只读查询