用途:为 Redis 数据建模提供基础指导,聚焦两个最影响内存、性能与可维护性的决策——数据类型选择与键名约定。
主要能力:
- 数据结构选择。按访问模式而非数据外形选型:简单值与计数器用 String(原子 INCR/DECR、SET/GET);字段可独立更新的对象用 Hash(按字段读写,无需整体重写);队列与最近 N 项用 List(两端 O(1) push/pop);去重与成员判断用 Set(O(1) SADD/SISMEMBER/SCARD);排行榜与按分数范围用 Sorted Set(ZADD/ZRANGE/ZRANK);嵌套或层级数据用 JSON(路径级更新、嵌套数组、RQE 索引);事件日志与扇出消息用 Stream(持久化、消费者组);向量相似度用 Vector Set(原生向量存储,HNSW)。常见反模式是把扁平对象塞进序列化字符串,改一个字段就要取回、解析、修改、重写,应改用 Hash。
- 键名约定。采用冒号分隔的稳定层级 {entity}:{id}:{attribute},例如 user:1001:profile、order:2024:items、session:abc123、article:987:likes。规则:小写、冒号分隔,不用空格与混合大小写;键要短但可读;不要用完整 URL 或长字符串作键,应提取短标识或使用 URL 的哈希摘要;多租户加前缀(tenant:42:user:7:cart)便于扫描与 ACL 定向;每个服务选定一种约定并一致应用。
使用方式:资料未提供具体安装命令或代码调用步骤,仅指向 references/choose-data-structure.md 与 references/key-naming.md 获取完整理由及 Python/Java 示例。
适用场景:设计 Redis 数据模型、缓存、队列、排行榜、事件流与向量检索等。
限制:资料未提供收费、价格、平台支持范围与效果数据;具体命令与示例需查阅上述参考文件。