Redis 命令手册介绍了 Redis 常用键命令和数据类型命令,是目前最全的 Redis 命令手册。
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 | 等待所有写入命令同步到指定副本数 |
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(哈希散列)是 Redis 基本数据类型,值value 中存储的是 hash 表。Hash 特别适合用于存储对象。常用的命令:
| 命令 | 描述 |
|---|---|
| HDEL | 删除哈希表中的一个或多个字段 |
| HEXISTS | 检查哈希表中指定字段是否存在 |
| HGET | 获取哈希表中指定字段的值 |
| HGETALL | 获取哈希表中所有字段和值 |
| HINCRBY | 将哈希表字段的整数值增加指定数量 |
| HINCRBYFLOAT | 将哈希表字段的浮点数值增加指定数量 |
| HKEYS | 获取哈希表中所有字段名 |
| HLEN | 获取哈希表中字段的数量 |
| HMGET | 获取哈希表中多个字段的值 |
| HMSET | 同时设置哈希表中的多个字段(已弃用,推荐 HSET) |
| HSCAN | 增量遍历哈希表的字段和值 |
| HSET | 设置哈希表中指定字段的值 |
| HSETNX | 仅当字段不存在时才设置哈希表字段 |
| HSTRLEN | 获取哈希表中字段值的长度 |
| HVALS | 获取哈希表中所有字段的值 |
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 | 仅当列表存在时才追加元素到尾部 |
| 命令 | 描述 |
|---|---|
| SADD | 向集合中添加一个或多个成员 |
| SCARD | 获取集合的成员数量 |
| SDIFF | 返回多个集合的差集 |
| SDIFFSTORE | 计算差集并存储到新集合 |
| SINTER | 返回多个集合的交集 |
| SINTERSTORE | 计算交集并存储到新集合 |
| SISMEMBER | 判断成员是否在集合中 |
| SMEMBERS | 获取集合中的所有成员 |
| SMISMEMBER | 判断多个成员是否在集合中 |
| SMOVE | 将成员从一个集合移动到另一个集合 |
| SPOP | 移除并返回集合中的一个或多个随机成员 |
| SRANDMEMBER | 随机获取集合中的一个或多个成员 |
| SREM | 从集合中移除一个或多个成员 |
| SSCAN | 增量遍历集合中的元素 |
| SUNION | 返回多个集合的并集 |
| SUNIONSTORE | 计算并集并存储到新集合 |
下表列出了 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 服务相关的命令
| 命令 | 描述 |
|---|---|
| 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 发布订阅相关命令:
| 命令 | 描述 |
|---|---|
| PSUBSCRIBE | 订阅匹配指定模式的所有频道 |
| PUBLISH | 向指定频道发布消息 |
| PUBSUB | 查看发布订阅系统的状态 |
| PUNSUBSCRIBE | 退订匹配指定模式的所有频道 |
| SUBSCRIBE | 订阅一个或多个频道 |
| UNSUBSCRIBE | 退订一个或多个频道 |
下表列出了 Redis 事务的相关命令
| 命令 | 描述 |
|---|---|
| DISCARD | 放弃事务中的所有命令 |
| EXEC | 执行事务中的所有命令 |
| MULTI | 标记事务块的开始 |
| UNWATCH | 取消对所有 key 的监视 |
| WATCH | 监视一个或多个 key |
下表列出了用于 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 | 切换到指定的数据库 |
| 命令 | 描述 |
|---|---|
| EVAL | 执行 Lua 脚本 |
| EVALSHA | 通过 SHA1 摘要执行已加载的 Lua 脚本 |
| SCRIPT DEBUG | 设置 Lua 脚本的调试模式 |
| SCRIPT EXISTS | 检查脚本是否已加载到缓存 |
| SCRIPT FLUSH | 清空 Lua 脚本缓存 |
| SCRIPT KILL | 终止正在执行的 Lua 脚本 |
| SCRIPT LOAD | 将 Lua 脚本加载到缓存并返回 SHA1 |
| 命令 | 描述 |
|---|---|
| PFADD | 向 HyperLogLog 添加元素 |
| PFCOUNT | 获取 HyperLogLog 的近似基数 |
| PFMERGE | 合并多个 HyperLogLog |
| 命令 | 描述 |
|---|---|
| GEOADD | 向地理空间索引添加位置 |
| GEODIST | 返回两个位置之间的距离 |
| GEOHASH | 返回位置的 Geohash 字符串 |
| GEOPOS | 返回位置的经纬度坐标 |
| GEORADIUS | 查找指定半径内的位置(已弃用,推荐 GEOSEARCH) |
| GEORADIUSBYMEMBER | 查找指定半径内的位置(已弃用,推荐 GEOSEARCH) |
下表列出了 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 集群相关命令
| 命令 | 描述 |
|---|---|
| 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 | 禁用副本节点的只读查询 |