命令介绍
Keys 族命令用于与数据类型无关的通用键管理操作,构成所有数据结构公共的生命周期管理基础。其核心命令按功能可分为以下五类:
键的创建、删除与存在性检查
DEL:同步删除一个或多个键。
UNLINK:异步删除(后台释放内存,避免阻塞主线程)。
EXISTS:检查一个或多个键是否存在。
TYPE:返回键的数据类型。
RENAME / RENAMENX:对键进行重命名(RENAMENX 仅在目标键不存在时执行)。
过期时间与生命周期管理
EXPIRE / PEXPIRE:以秒或毫秒精度设置相对过期时间。
EXPIREAT / PEXPIREAT:以 UNIX 时间戳设置绝对过期时间。
TTL / PTTL:查询键的剩余存活时间。
PERSIST:移除过期时间使键永久有效。
EXPIRETIME / PEXPIRETIME(Redis 7.0+):返回键的到期时间戳。
键空间遍历与检索
SCAN:以游标方式增量迭代全库键名,适用于生产环境键空间探索。
KEYS:按通配符模式匹配返回所有匹配键名(会阻塞服务端,生产环境慎用)。
RANDOMKEY:随机返回一个键名。
键的序列化与复制
DUMP / RESTORE:将键值序列化导出为二进制格式并导入还原。
COPY(Redis 6.2+):在同实例内复制键值到新键名。
OBJECT(ENCODING / REFCOUNT / IDLETIME / FREQ / HELP):查看键的内部编码、引用计数、空闲时间等内部信息。
排序操作
SORT / SORT_RO:对列表、集合或有序集合中的元素进行排序并返回结果(SORT_RO 为只读版本)。
命令支持概览
基础命令:
touch、restore、object、unlink、wait、dump、del、scan、exists、expire、expireat、keys、type、move、ttl、persist、pexpire、pexpireat、pttl、randomkey、rename、renamenx、sort,Redis 4.0、5.0、6.2、7.0 版本、Valkey 8.0、9.0 的标准架构与集群架构均支持。copy、object help 命令:仅 Redis 6.2、7.0 版本及 Valkey 8.0、9.0 版本支持。sort_ro、expiretime、pexpiretime 命令:仅 Redis 7.0 版本及 Valkey 8.0、9.0 版本支持。delifeq 命令:仅 Valkey 9.0 支持。跨 Slot 限制:集群架构下,支持跨 Slot 操作的命令为
del、exists;不支持跨 Slot 操作的命令为 unlink、rename、renamenx。说明:
migrate 命令在所有版本与架构中均不支持。expire 命令支持 NX、XX、GT、LT 可选参数。NX:仅在 key 不存在过期时间时设置;
XX:仅在 key 存在过期时间时设置;
GT:仅在新过期时间大于当前时设置;
LT:仅在新过期时间小于当前时设置。
命令兼容性矩阵
Keys 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
命令 | Valkey 9.0标准架构 | Valkey 9.0集群架构 | Redis 7.0/Valkey 8.0标准架构 | Redis 7.0/Valkey 8.0集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
delifeq | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
touch | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | — |
restore | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
object | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
object help | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
unlink | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | x |
wait | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | — |
migrate | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
dump | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
del | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
scan | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
exists | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
expire | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
expireat | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
keys | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
type | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
move | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
ttl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
persist | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
pexpire | ✗ | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
pexpireat | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
pttl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
randomkey | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
rename | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
renamenx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
sort | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
sort_ro | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
copy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
expiretime | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |
pexpiretime | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | — |