Skip to content

redis 后端 index 类改原生 ZSET(§6.2 设计未落地,现走统一 TLV blob) #14

Description

@miaobyte

方案文档《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 校验。

待决策

  1. 是否落地 ZSET(性能 + 文档契约)?
  2. 若做,fs/shm 后端的「body 权威」与 redis「ZSET 权威、body 合成」需保持语义对称(§6.1)。

相关:array2d/kvlang#67(方案文档)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions