IDX.CREATE
在某个 key 前缀上声明一个二级索引(catalog 变更,由 sidecar 持久化)。
IDX.CREATE name ON PREFIX prefix FIELD field TYPE i64|f64|str|vector KIND range|unique|text|ann|agg [MAXMEM bytes] [DIM dim] [DISTANCE cosine|l2|ip] [M m] [EF ef] [GROUPBY field]
复杂度
调用本身 O(1);构建是异步的 —— 每个 shard 先给自己匹配到的 key 拍一份快照(该 shard 上 O(keys)),再按每 tick 2048 行的速度回填。单行的构建代价:range / unique 是 O(log N),text 是 O(tokens),vector 是 O(ef_construction * M * dim)。
复杂度与兼容性是从 kevy 的实现里读出来的,不是抄 Redis 的文档。有几条确实不一样 —— 它们看起来像笔误,但不是。
与 Redis 的兼容性
kevy 独有
kevy 独有:最接近的是 RediSearch 的 FT.CREATE —— 同样是在 key 前缀上声明索引,但 RediSearch 是一个独立模块,带自己的索引服务;kevy 的 catalog 在进程内,索引在写入钩子里维护。
另见
IDX.COUNTIDX.DROPIDX.EXPLAINIDX.LISTIDX.QUERYIDX.REBUILDIDX.VERIFY