方案文档《XValue类型系统与JSON全类型key布局》§6.2 规定 redis 后端 index 类用两个 redis key:
| key |
存什么 |
| p(目录 key) |
Redis ZSET(成员名→score,ZADD/ZREM/ZRANGE) |
| p‥head |
header XValue(kind/ro/vid + body=[4B count LE]) |
- 增删成员走 ZADD/ZREM(O(log N)),不再整块重写;ZCARD 与 ‥head count 互为校验。
- score 语义:stringkeymap 按坐标数值、objindex/index 无序。
- get(p) 由 ZSET + ‥head 合成完整 index XValue。
现状:redis store.rs 仍是普通 STRING(get/set/del/scan_keys),index 类走统一 TLV blob 落盘 + 整块 read-modify-write,无 ZSET。功能可用,但缺 O(log N) 增删与 ZCARD 校验。
待决策
- 是否落地 ZSET(性能 + 文档契约)?
- 若做,fs/shm 后端的「body 权威」与 redis「ZSET 权威、body 合成」需保持语义对称(§6.1)。
相关:array2d/kvlang#67(方案文档)。
方案文档《XValue类型系统与JSON全类型key布局》§6.2 规定 redis 后端 index 类用两个 redis key:
现状:redis store.rs 仍是普通 STRING(get/set/del/scan_keys),index 类走统一 TLV blob 落盘 + 整块 read-modify-write,无 ZSET。功能可用,但缺 O(log N) 增删与 ZCARD 校验。
待决策
相关:array2d/kvlang#67(方案文档)。