Redis Core

作者 redisa84871d065f3MIT收录于 2026年10月8日更新于 2026年10月8日

Core Redis modeling guidance — choose the right data structure (String, Hash, List, Set, Sorted Set, JSON, Stream, Vector Set) and use consistent colon-separated key names. Use when designing a Redis data model, caching objects, deciding between Hash and JSON, building counters, leaderboards, membership sets, or session stores, or when reviewing/cleaning up Redis key naming.

AI 生成的概览

提供 Redis 数据建模指导:选择合适的数据结构,并使用一致的冒号分隔键名。

功能
该技能提供 Redis 数据建模的基础指导,涵盖两项决策:使用哪种数据类型(String、Hash、List、Set、Sorted Set、JSON、Stream、Vector Set),以及如何命名键。内容包括用例与类型对照表、键命名规则,以及两份提供完整理由、示例和清理边界情况的参考文档。它产出的是建议与约定,而非代码或文件。
适用场景
适用于设计 Redis 数据模型、缓存对象或会话、构建计数器、排行榜、成员集合,或在 Hash 与 JSON 文档之间做选择时。也适用于审查或重构现有 Redis 键名。
运行要求
无需脚本或工具,仅包含说明和两份参考文档。只有在打开其引用的外部 Redis 文档链接时才需要网络访问。

Redis Core

Foundational guidance for modeling data in Redis. Covers data-type selection and key-name conventions — the two decisions that most directly drive memory, performance, and maintainability.

When to apply

  • Caching objects, sessions, or per-user state.
  • Counters, leaderboards, recent-items lists, unique-membership sets.
  • Reviewing or refactoring Redis key names.
  • Deciding between a Redis Hash and a JSON document for an entity.

1. Choose the right data structure

Pick the type that matches the access pattern, not just the shape of the data.

Use caseRecommended typeWhy
Simple values, countersStringAtomic INCR/DECR, SET/GET
Object with independently updated fieldsHashPer-field reads/writes, no whole-object rewrite
Queue, recent-N itemsListO(1) push/pop at ends
Unique items, membership checksSetO(1) SADD/SISMEMBER/SCARD
Rankings, score-based rangesSorted SetScore-ordered; ZADD/ZRANGE/ZRANK
Nested / hierarchical dataJSONPath-level updates, nested arrays, RQE indexing
Event log, fan-out messagingStreamPersistent, consumer groups
Vector similarityVector SetNative vector storage with HNSW

Common anti-pattern: stuffing a flat object into a serialized string. Updating one field means fetch + parse + mutate + rewrite. Use a Hash instead.

See references/choose-data-structure.md [blocked] for full rationale and Python/Java examples.

2. Use consistent key names

Use colon-separated segments with a stable hierarchy:

{entity}:{id}:{attribute}user:1001:profileuser:1001:settingsorder:2024:itemssession:abc123article:987:likesgame:space-invaders:leaderboard

Rules of thumb:

  • Lowercase, colon-separated. No spaces, no mixed casing (User_1001_Profile is bad).
  • Keep keys short but readable — keys live in memory and appear in every command.
  • Don't use full URLs or long strings as keys. Extract a short identifier, or use a hash digest of the URL.
  • Prefix for multi-tenancy (tenant:42:user:7:cart) so scans and ACLs can target a tenant cleanly.
  • Be consistent. Pick one convention per service and apply it across all keys.

See references/key-naming.md [blocked] for cleanup examples and edge cases.

References

来源与署名

来源:redis/agent-skills位于plugins/redis-development/skills/redis-core提交a84871d

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架