命令
184 个命令
服务器会应答的每一个动词,直接来自它自己的注册表 —— 也就是 COMMAND DOCS 读的同一张表。有两栏是 Redis 的参考文档里没有的:这个命令在本引擎里的真实代价,以及它与 Redis 的差异。
| 命令 | 分组 | 复杂度 | 与 Redis 的兼容性 | 摘要 |
|---|---|---|---|---|
| APPEND | 字符串 | 值不超过 64 B 时是均摊 O(1);一旦超过这个阈值,每次调用都是 O(N) | 兼容 | 在字符串值尾部追加字节,返回追加后的新长度。 |
| DECR | 字符串 | O(1) | 兼容 | 把 key 的整数值减 1。 |
| DECRBY | 字符串 | O(1) | 兼容 | 把 key 的整数值减去指定的量。 |
| GET | 字符串 | O(1) | 兼容 | 返回 key 的字符串值。 |
| GETDEL | 字符串 | O(1) | 兼容 | 返回 key 的字符串值,同时把这个 key 删掉。 |
| GETSET | 字符串 | O(1) | 兼容 | 写入新的字符串值,并返回改写前的旧值。 |
| INCR | 字符串 | O(1) | 兼容 | 把 key 的整数值加 1。 |
| INCRBY | 字符串 | O(1) | 兼容 | 把 key 的整数值加上指定的量。 |
| INCRBYFLOAT | 字符串 | O(1) | 有差异 | 把 key 的浮点值加上指定的量。 |
| MGET | 字符串 | O(N) 个 key,每个 key 在其归属 shard 上做一次 O(1)… | 有差异 | 批量返回多个 key 的值(跨 shard 汇聚)。 |
| MSET | 字符串 | O(N) 组,每组一次 O(1) 的 SET | 有差异 | 批量写入多组 key 与 value —— 原子性只到单个 shard 之内。 |
| PSETEX | 字符串 | O(1) | 兼容 | 写入 key 的值,并设定以毫秒为单位的 TTL。 |
| SET | 字符串 | O(1) | 有差异 | 写入 key 的字符串值,可选地带上 TTL 与存在性条件。 |
| SETEX | 字符串 | O(1) | 兼容 | 写入 key 的值,并设定以秒为单位的 TTL。 |
| SETNX | 字符串 | O(1) | 兼容 | 仅当 key 不存在时才写入它的值。 |
| STRLEN | 字符串 | O(1) | 兼容 | 返回 key 所存字符串值的长度。 |
| DEL | 通用键操作 | O(N) 个 key;某个 key 若存的是含 M 个元素的容器,还要为它多… | 有差异 | 删除一个或多个 key。 |
| EXISTS | 通用键操作 | O(N) 个 key,每个做一次 O(1) 探测 | 有差异 | 统计给定的这些 key 里有多少个存在。 |
| EXPIRE | 通用键操作 | O(1) | 有差异 | 设定 key 的 TTL,单位为秒(TTL 为非正数时直接删除该 key)。 |
| EXPIREAT | 通用键操作 | O(1) | 有差异 | 把 key 的过期时刻设为一个绝对 Unix 时间戳,单位为秒。 |
| PERSIST | 通用键操作 | O(1) | 兼容 | 移除 key 上的 TTL。 |
| PEXPIRE | 通用键操作 | O(1) | 有差异 | 设定 key 的 TTL,单位为毫秒。 |
| PEXPIREAT | 通用键操作 | O(1) | 有差异 | 把 key 的过期时刻设为一个绝对 Unix 时间戳,单位为毫秒。 |
| PTTL | 通用键操作 | O(1) | 兼容 | 返回 key 的剩余 TTL,单位为毫秒(-1 表示没有 TTL,-2 表示 key 不存在)。 |
| RENAME | 通用键操作 | 字符串值是 O(1);含 M 个元素的容器是 O(M) | 有差异 | 重命名 key,直接覆盖掉目标 key(写在 runtime 的 Op 层路由)。 |
| RENAMENX | 通用键操作 | 字符串值是 O(1);含 M 个元素的容器是 O(M) | 有差异 | 仅当目标 key 不存在时才重命名(写在 runtime 的 Op 层路由)。 |
| TTL | 通用键操作 | O(1) | 兼容 | 返回 key 的剩余 TTL,单位为秒(-1 表示没有 TTL,-2 表示 key 不存在)。 |
| TYPE | 通用键操作 | O(1) | 兼容 | 返回 key 所存值的类型。 |
| UNLINK | 通用键操作 | O(N) 个 key,容器类型的 key 每个另加 O(M) | 有差异 | 删除一个或多个 key(在 kevy 的 shard 模型里,它就是 DEL 的别名)。 |
| KEYS | 键空间扫描 | O(N),N 为整个键空间的 key 数 | 兼容 | 返回键空间里所有匹配该 glob 模式的 key(跨 shard 汇聚)。 |
| RANDOMKEY | 键空间扫描 | 期望 O(1) | 有差异 | 从键空间里返回一个随机 key。 |
| SCAN | 键空间扫描 | 每次调用都是 O(N),N 为整个键空间的 key 数 | 有差异 | 扫一遍键空间,把全部匹配项一次返回;它不是游标迭代器(COUNT 与 TYPE 会被接受然后忽略,游标恒为 0)。 |
| BLPOP | 列表 | 服务一次是 O(1);阻塞挂起本身是 O(1),同一个 key 上的等待者按… | 有差异 | 在一个或多个 list 上做阻塞式左弹出(effect 按 LPOP 记录)。 |
| BRPOP | 列表 | 服务一次是 O(1);阻塞挂起按 FIFO 排队 | 有差异 | 在一个或多个 list 上做阻塞式右弹出(effect 按 RPOP 记录)。 |
| BRPOPLPUSH | 列表 | 服务一次是 O(1) | 有差异 | 阻塞版的 RPOPLPUSH:弹出 source 的尾元素,压入 destination 的头部。 |
| LINDEX | 列表 | O(1) | 兼容 | 返回 list 中指定下标处的元素。 |
| LLEN | 列表 | O(1) | 兼容 | 返回 list 的长度。 |
| LMOVE | 列表 | O(1) | 有差异 | 在两个 list 之间原子地搬运一个元素。 |
| LPOP | 列表 | O(C),C 为弹出的元素个数 | 有差异 | 从 list 头部弹出一个或多个元素。 |
| LPOS | 列表 | 恒为 O(N) | 兼容 | 返回 list 中匹配元素的下标。 |
| LPUSH | 列表 | O(M),M 为元素个数,每个均摊 O(1) | 兼容 | 把一个或多个元素压入 list 头部。 |
| LRANGE | 列表 | O(M),M 为返回的元素个数 | 兼容 | 返回 list 的一段区间。 |
| LREM | 列表 | 最坏 O(N*R) | 兼容 | 从 list 中删除所有等于给定值的元素。 |
| LSET | 列表 | O(1) | 兼容 | 改写 list 中指定下标处的元素。 |
| LTRIM | 列表 | O(R),R 为被移除的元素个数 | 兼容 | 把 list 裁剪到给定区间。 |
| RPOP | 列表 | O(C),C 为弹出的元素个数 | 有差异 | 从 list 尾部弹出一个或多个元素。 |
| RPOPLPUSH | 列表 | O(1) | 有差异 | 弹出 source 的尾元素,压入 destination 的头部。 |
| RPUSH | 列表 | O(M),M 为元素个数,每个均摊 O(1) | 兼容 | 把一个或多个元素追加到 list 尾部。 |
| HDEL | 哈希 | O(M),M 为 field 个数 | 兼容 | 删除 hash 中的一个或多个 field。 |
| HEXISTS | 哈希 | O(1) | 兼容 | 判断 hash 中某个 field 是否存在。 |
| HEXPIRE | 哈希 | O(F),F 为 FIELDS 子句里列出的 field 个数 | 有差异 | 给 hash 的若干 field 分别设定 TTL,单位为秒。 |
| HGET | 哈希 | O(1) | 兼容 | 返回 hash 中某个 field 的值。 |
| HGETALL | 哈希 | O(N),N 为 field 个数,每个 field 名和值都会被完整拷贝一份 | 兼容 | 返回 hash 的全部 field 与值。 |
| HINCRBY | 哈希 | O(1) | 兼容 | 把 hash 中某个 field 的整数值加上指定的量。 |
| HKEYS | 哈希 | O(N),N 为 field 个数 | 兼容 | 返回 hash 的全部 field 名。 |
| HLEN | 哈希 | O(1) | 兼容 | 返回 hash 的 field 数量。 |
| HMGET | 哈希 | O(M),M 为请求的 field 个数 | 兼容 | 批量返回 hash 中多个 field 的值。 |
| HMSET | 哈希 | O(M),M 为 field 与值的组数 | 兼容 | HSET 的废弃别名,回复 OK。 |
| HPERSIST | 哈希 | O(F),F 为 field 个数 | 有差异 | 移除 hash 上 field 级别的 TTL。 |
| HPEXPIRE | 哈希 | O(F),F 为 field 个数 | 有差异 | 给 hash 的若干 field 分别设定 TTL,单位为毫秒。 |
| HPEXPIREAT | 哈希 | O(F),F 为 field 个数 | 有差异 | 把 hash 中若干 field 的过期时刻设为绝对 Unix 毫秒时间戳。 |
| HPTTL | 哈希 | O(F) | 有差异 | 按字段返回剩余 TTL、单位为毫秒(-1 表示无 TTL、-2 表示字段不存在)。 |
| HSCAN | 哈希 | O(N) | 有差异 | 遍历 hash 的 field 与值(单批次游标)。 |
| HSET | 哈希 | O(M),M 为 field 与值的组数 | 兼容 | 写入一个或多个 hash field,返回其中新增的 field 数。 |
| HSETNX | 哈希 | O(1) | 兼容 | 仅当该 field 不存在时才写入 hash field。 |
| HTTL | 哈希 | O(F) | 有差异 | 按字段返回剩余 TTL、单位为秒(-1 表示无 TTL、-2 表示字段不存在)。 |
| HVALS | 哈希 | O(N),N 为 field 个数 | 兼容 | 返回 hash 的全部值。 |
| SADD | 集合 | O(M),M 为成员个数 | 兼容 | 向 set 添加一个或多个成员。 |
| SCARD | 集合 | O(1) | 兼容 | 返回 set 的成员数量。 |
| SDIFF | 集合 | O(各源 set 基数之和) | 兼容 | 返回若干 set 的差集(跨 shard 汇聚)。 |
| SDIFFSTORE | 集合 | O(各源 set 基数之和),再加上在 destination 所属 sha… | 兼容 | 把若干 set 的差集写入 destination。 |
| SINTER | 集合 | O(各源 set 基数之和) | 兼容 | 返回若干 set 的交集(跨 shard 汇聚)。 |
| SINTERSTORE | 集合 | O(各源 set 基数之和) 加 O(结果集大小);同样没有「先取最小集合」… | 兼容 | 把若干 set 的交集写入 destination。 |
| SISMEMBER | 集合 | O(1) | 兼容 | 判断某个值是不是 set 的成员。 |
| SMEMBERS | 集合 | O(N),N 为成员个数 | 兼容 | 返回 set 的全部成员。 |
| SPOP | 集合 | 期望 O(count);用 N 次调用把一个 N 成员的 set 抽干是 O… | 有差异 | 随机移除并返回 set 中的一个或多个成员。 |
| SRANDMEMBER | 集合 | 期望 O(count) | 有差异 | 随机返回 set 中的一个或多个成员,不移除它们。 |
| SREM | 集合 | O(M),M 为成员个数 | 兼容 | 从 set 移除一个或多个成员。 |
| SSCAN | 集合 | O(N) | 有差异 | 遍历 set 的成员(单批次游标)。 |
| SUNION | 集合 | O(各源 set 基数之和) | 兼容 | 返回若干 set 的并集(跨 shard 汇聚)。 |
| SUNIONSTORE | 集合 | O(各源 set 基数之和) 加 O(结果集大小) | 兼容 | 把若干 set 的并集写入 destination。 |
| BZPOPMIN | 有序集合 | 每次弹出 O(log N);阻塞挂起本身是 O(1) | 兼容 | 在一个或多个 zset 上做阻塞式弹出,取分值最低的成员。 |
| ZADD | 有序集合 | O(M log N) | 兼容 | 向 zset 添加带分值的成员,可带条件标志。 |
| ZCARD | 有序集合 | O(1) | 兼容 | 返回 zset 的成员数量。 |
| ZCOUNT | 有序集合 | O(N) | 兼容 | 统计分值落在给定区间内的成员个数。 |
| ZDIFFSTORE | 有序集合 | O(各源 zset 基数之和 + R log R);每个源都在各自的 sha… | 兼容 | 把若干 zset 的差集写入 destination。 |
| ZINCRBY | 有序集合 | O(log N) | 兼容 | 增加 zset 中某个成员的分值。 |
| ZINTERCARD | 有序集合 | O(各源 zset 基数之和) | 兼容 | 返回若干 zset 交集的基数。 |
| ZINTERSTORE | 有序集合 | O(各源 zset 基数之和 + R log R) | 兼容 | 把若干 zset 的交集写入 destination。 |
| ZPOPMIN | 有序集合 | O(M log N) | 兼容 | 弹出至多 count 个分值最低的成员。 |
| ZPOPMIN.BELOW | 有序集合 | O(M log N) | kevy 独有 | kevy 扩展:弹出至多 count 个分值严格小于阈值的最低成员(延时任务原语)。 |
| ZRANGE | 有序集合 | O(start + M) | 有差异 | 按排名区间返回成员。 |
| ZRANGEBYSCORE | 有序集合 | O(N + M) | 兼容 | 返回分值落在给定区间内的成员。 |
| ZRANK | 有序集合 | O(N) | 有差异 | 返回成员的排名 —— 按分值从低到高。 |
| ZREM | 有序集合 | O(M log N) | 兼容 | 从 zset 移除一个或多个成员。 |
| ZREMRANGEBYRANK | 有序集合 | O(start + M log N) | 兼容 | 移除落在给定排名区间内的成员。 |
| ZREMRANGEBYSCORE | 有序集合 | O(N + M log N) | 兼容 | 移除分值落在给定区间内的成员。 |
| ZREVRANGEBYSCORE | 有序集合 | O(N + M) | 兼容 | 返回分值落在给定区间内的成员,从高到低排列。 |
| ZSCAN | 有序集合 | O(N) | 有差异 | 遍历 zset 的成员与分值(单批次游标)。 |
| ZSCORE | 有序集合 | O(1) | 兼容 | 返回成员的分值。 |
| ZUNIONSTORE | 有序集合 | O(各源 zset 基数之和 + R log R) | 兼容 | 把若干 zset 的并集写入 destination。 |
| XACK | 流 | O(A log P) | 兼容 | 确认消费者组的待处理条目,把它们从 PEL 中移除。 |
| XADD | 流 | 插入是 O(log N);只要 MAXLEN / MINID 子句真的淘汰了… | 有差异 | 向流追加一条条目,可顺带按 MAXLEN / MINID 裁剪。 |
| XAUTOCLAIM | 流 | O(log P + K + COUNT log N);空闲过滤跑在取数之前,… | 有差异 | 从游标开始扫描并认领空闲的待处理条目。 |
| XCLAIM | 流 | O(A * (log P + log N)) | 有差异 | 认领指定的空闲待处理条目。 |
| XDEL | 流 | 删 D 个 ID 是 O(D log N + N*F) | 兼容 | 按 ID 删除流中的条目。 |
| XGROUP | 流 | CREATE / DESTROY:O(1),外加一次 O(N*F) 的权重重算 | 有差异 | 管理流的消费者组。 |
| XINFO | 流 | STREAM:O(1) | 有差异 | 查看流本身、它的消费者组或组内的消费者。 |
| XLEN | 流 | O(1) | 兼容 | 返回流中条目的数量。 |
| XPENDING | 流 | 汇总形式:O(P*C) | 兼容 | 查看消费者组的待处理条目(汇总形式或扩展形式)。 |
| XRANGE | 流 | O(log N + M) | 兼容 | 返回某个 ID 区间内的流条目。 |
| XREAD | 流 | S 条流合计 O(S * (log N + M));「$」是 O(1);挂起… | 有差异 | 从一条或多条流读取新条目,可阻塞。 |
| XREADGROUP | 流 | 「>」形式:O(log N + U + M) | 有差异 | 以消费者组成员的身份读取流条目,可阻塞。 |
| XREVRANGE | 流 | O(log N + M) | 兼容 | 按逆序返回某个 ID 区间内的流条目。 |
| XSETID | 流 | O(log N) | 兼容 | 覆写流的 last-generated ID 与相关的记账计数器。 |
| XTRIM | 流 | 淘汰 R 条条目是 O(R log N + N*F) | 有差异 | 按长度或最小 ID 裁剪流。 |
| GEOADD | 地理空间 | O(M log N);带 CH 时再加一项 O(M^2) | 兼容 | 向 geo 集合添加成员(经度 / 纬度)。 |
| GEODIST | 地理空间 | O(1) | 兼容 | 返回两个 geo 成员之间的距离。 |
| GEOHASH | 地理空间 | O(M) | 兼容 | 返回每个成员的 base32 geohash 字符串。 |
| GEOPOS | 地理空间 | O(M) | 兼容 | 返回每个成员的经纬度。 |
| GEORADIUS | 地理空间 | 每次调用 O(N);带 STORE / STOREDIST 时再加 O(K… | 有差异 | 以坐标为圆心的旧式半径搜索,可选把结果写入目标 key。 |
| GEORADIUSBYMEMBER | 地理空间 | 每次调用 O(N);锚点成员的查找是 O(1) | 有差异 | 以已有成员为圆心的旧式半径搜索,可选把结果写入目标 key。 |
| GEOSEARCH | 地理空间 | 每次调用 O(N) | 有差异 | 从某个成员或某个坐标出发,按半径或矩形范围搜索成员。 |
| GEOSEARCHSTORE | 地理空间 | 搜索 O(N),外加在 destination 所属 shard 上重写它的… | 有差异 | 在 source 上执行 GEOSEARCH,并把命中结果写入 destination。 |
| ECHO | 连接 | O(1) | 兼容 | 原样返回给定的消息。 |
| HELLO | 连接 | O(1) | 有差异 | 握手:返回服务器信息,并切换 RESP 协议版本(2 或 3)。 |
| PING | 连接 | O(1) | 有差异 | 探活;返回 PONG,或回显可选的消息。 |
| QUIT | 连接 | O(1) | 兼容 | 回复 OK 之后关闭连接。 |
| SELECT | 连接 | O(1) | 有差异 | 选择逻辑数据库;kevy 只有单库,只接受索引 0。 |
| BGREWRITEAOF | 服务器 | O(S) 扇出;每个 shard 冻结一份写时复制视图,再把序列化与 fsy… | 有差异 | 在后台开始一次 append-only 文件重写。 |
| BGSAVE | 服务器 | O(S) 扇出;每个 shard 在 reactor 上做 O(N/S) 的… | 有差异 | 在后台开始一次快照保存。 |
| CLIENT | 服务器 | ID / GETNAME / SETNAME / INFO:O(1) | 有差异 | 连接的查看与控制子命令。 |
| CLUSTER | 服务器 | INFO / NODES / SLOTS / SHARDS / MYID:O… | 有差异 | 集群拓扑查看(架在 shard 之上的虚拟节点模型)。 |
| COMMAND | 服务器 | 裸命令 / LIST / DOCS:O(V) 个命令 | 有差异 | 查看命令表(COUNT、LIST、INFO、DOCS 子命令)。 |
| CONFIG | 服务器 | GET:O(patterns * 16) | 有差异 | 读取或修改服务器的配置参数。 |
| DBSIZE | 服务器 | O(S) | 兼容 | 返回所有 shard 上的 key 总数。 |
| DEBUG | 服务器 | SLEEP:把应答的那个 shard 的 reactor 线程停住指定时长(… | 有差异 | 调试子命令;SLEEP 会阻塞一个 shard,其余子命令一律容忍并返回 OK。 |
| FLUSHALL | 服务器 | O(S) 扇出;每个 shard 做 O(N/S) 的清空,外加 WATCH… | 有差异 | 删除每个 shard 上的每一个 key。 |
| FLUSHDB | 服务器 | O(N + S) | 有差异 | 删除当前数据库的每一个 key(kevy 是单库:等同于 FLUSHALL)。 |
| INFO | 服务器 | 在键空间上是 O(1) | 有差异 | 以文本形式输出服务器的统计与状态分区。 |
| MEMORY | 服务器 | USAGE:O(1) | 有差异 | 内存查看子命令。 |
| SAVE | 服务器 | O(S) 扇出;每个 shard 做 O(N/S) 的写时复制冻结 | 有差异 | 把数据集同步快照到磁盘。 |
| SHUTDOWN | 服务器 | 把停止标志置位是 O(1);随后的排空收尾是 O(N) | 有差异 | 停止服务器进程(连接直接断开,不返回任何回复)。 |
| SLOWLOG | 服务器 | GET:O(S) 扇出,外加 O(L log L) 的归并 | 有差异 | 查看或重置慢命令日志。 |
| DISCARD | 事务 | O(1) | 兼容 | 放弃已经开启的 MULTI 事务。 |
| EXEC | 事务 | O(排队命令各自代价之和);若 WATCH 了 W 个 key,还要多一次… | 有差异 | 执行自 MULTI 以来排队的全部命令。 |
| MULTI | 事务 | O(1) | 兼容 | 开启事务;后续命令会排队,直到 EXEC。 |
| UNWATCH | 事务 | O(1) | 兼容 | 清空所有被 WATCH 的 key。 |
| WATCH | 事务 | W 个 key 是 O(W),归并成 O(min(W,S)) 条跨 shar… | 兼容 | 监视 key,为下一次 EXEC 做乐观锁。 |
| EVAL | 脚本 | O(编译 + 脚本自身的开销) | 有差异 | 在服务端执行一段 Lua 脚本;当 numkeys >= 1 时,路由到 KEYS[1] 所在的 shard。 |
| EVALSHA | 脚本 | 缓存查找 O(1),之后与 EVAL 完全相同 | 有差异 | 按 SHA1 摘要执行已缓存的 Lua 脚本。 |
| SCRIPT | 脚本 | LOAD:O(len(script)) | 有差异 | 管理进程级的 Lua 脚本缓存。 |
| PSUBSCRIBE | 发布订阅 | O(p * P) | 兼容 | 订阅与给定 glob 模式匹配的频道。 |
| PUBLISH | 发布订阅 | 频道查找 O(1),外加 O(P) | 兼容 | 向频道投递一条消息;返回接收者数量。 |
| PUNSUBSCRIBE | 发布订阅 | O(p * P) | 兼容 | 退订模式(不给参数时退订全部模式)。 |
| SUBSCRIBE | 发布订阅 | O(c) 个频道;从不扇出到其它 shard | 有差异 | 订阅给定的频道。 |
| UNSUBSCRIBE | 发布订阅 | O(c) 个频道 | 兼容 | 退订频道(不给参数时退订全部频道)。 |
| FAILOVER | 复制 | 命令本身 O(1) | 有差异 | 有计划的零丢失切换:停写、等目标副本追平、把它提升为主、然后本机改为跟随它。 |
| REPL.TOKEN | 复制 | O(S) | kevy 独有 | kevy 扩展:签发一个 read-your-writes 令牌 —— 每个 shard 一对 [generation, offset](主库报告自己 feed 的尾部,副本报告自己已应用到的位置)。 |
| REPL.WAIT | 复制 | O(S) | kevy 独有 | kevy 扩展:在副本上阻塞,直到每个 shard 都应用了给定的 REPL.TOKEN(此后的读即为 read-your-writes);成功返回 +OK,超时或代际不匹配返回 -MISDIRECTED writer is <primary>。TIMEOUT 默认 1000 ms,硬上限 60 s。在主库上:立即返回 +OK。 |
| REPLICAOF | 复制 | 命令本身 O(1);随后的全量重同步在后台进行,代价是 O(N) | 有差异 | 让本机成为另一台服务器的副本,或用 NO ONE 把它提升为主。 |
| ROLE | 复制 | 副本上 O(1);主库上 O(R) | 兼容 | 报告本机的复制角色与状态。 |
| SLAVEOF | 复制 | O(1),外加一次后台重同步 | 有差异 | REPLICAOF 的旧式别名。 |
| WAIT | 复制 | O(S) | 有差异 | 阻塞直到每个 shard 的 master_repl_offset 都被至少 numreplicas 个副本确认(或者超过 timeout 毫秒);返回各 shard 中最小的已确认副本数。timeout 0 表示一直等,硬上限 60 s。注意:副本的 ACK 不等于 fsync 落盘。 |
| IDX.COUNT | 索引 | 每个 shard 上 O(log N + matched) | kevy 独有 | 统计匹配区间谓词或等值谓词的索引条目数。 |
| IDX.CREATE | 索引 | 调用本身 O(1);构建是异步的 | kevy 独有 | 在某个 key 前缀上声明一个二级索引(catalog 变更,由 sidecar 持久化)。 |
| IDX.DROP | 索引 | O(catalog 大小) | kevy 独有 | 删除一个已声明的索引(catalog 变更,由 sidecar 持久化)。 |
| IDX.EXPLAIN | 索引 | 执行计划只靠解析得出,但 est_rows 要付出与 IDX.LIST 相同… | kevy 独有 | 只做 IDX.QUERY 的解析而不执行:给出索引种类、构建状态、est_rows 和一行执行计划。 |
| IDX.LIST | 索引 | 不是 O(1) | kevy 独有 | 列出已声明的索引,附带每个索引的构建状态与统计。 |
| IDX.QUERY | 索引 | 取决于索引种类 | kevy 独有 | 查询索引:区间 / 等值、文本 MATCH、向量 KNN、聚合分组,或跨两个索引的 COMPOSE。 |
| IDX.REBUILD | 索引 | 仅对向量索引有效(墓碑压实) | kevy 独有 | 重建一个 ANN 索引(墓碑压实)。 |
| IDX.VERIFY | 索引 | 每个 shard 上 O(N) | kevy 独有 | 校验索引:把每一条索引项都拿回它对应的行重读一遍,报告 entries / bytes / coerce_failures / duplicates / drift / checked。 |
| VIEW.CREATE | 视图 | 调用本身 O(树的大小) | kevy 独有 | 在若干索引之上声明一个组合视图,并指定 ORDER BY(catalog 变更,由 sidecar 持久化)。 |
| VIEW.DROP | 视图 | O(catalog 大小) | kevy 独有 | 删除一个已声明的视图(catalog 变更,由 sidecar 持久化)。 |
| VIEW.EXPLAIN | 视图 | O(各叶子的 (log N + matched) 之和) | kevy 独有 | 展开视图的组合树,并给出每个叶子的基数。 |
| VIEW.LIST | 视图 | 在发起端 O(视图数量) | kevy 独有 | 列出已声明的视图及其模式与形状。 |
| VIEW.QUERY | 视图 | virtual:O(log N_order + candidates * l… | kevy 独有 | 按视图的既定顺序翻页取出成员,可通过 VIA 模板顺带把字段取回来。 |
| VIEW.REBUILD | 视图 | 仅对 materialized 视图有效 | kevy 独有 | 强制重建一个 materialized 视图。 |
| VIEW.VERIFY | 视图 | materialized:O(M) | kevy 独有 | 校验视图,报告成员数与字节数的统计。 |
| FEED.READ | 变更流 | 只涉及单个 shard(shard 是参数,不是扇出) | kevy 独有 | 从某个 shard 读取变更 feed 的帧,起点是给定的 generation / offset 游标。 |
| FEED.SHARDS | 变更流 | O(1),本地应答 | kevy 独有 | 返回变更 feed 的 shard 数量。 |
| FEED.TAIL | 变更流 | 单个 shard 上 O(1) | kevy 独有 | 返回某个 shard 当前的 feed generation 与下一个 offset。 |
| PREFIX.DIGEST | 迁移 | 每个 shard 上遍历 O(该 shard 上的 key 数),再加上 O… | kevy 独有 | 对某个前缀下的行做一个与顺序无关的校验和,用于迁移核对。 |
| PREFIX.STATS | 迁移 | O(该 shard 上的 key 数) | kevy 独有 | 报告某个 key 前缀的 key 数量与字节数统计。 |