mcpbeat

Redis Core

redis/redis-core

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.

8k tokens
context cost
the whole folder, loaded on every use
11
files
instructions only
0
copies elsewhere
how many repositories repackaged it
69 d ago
last touched
this folder, not the whole repository

Install

one command, takes just this skill from the repository
npx skills add https://github.com/redis/agent-skills --skill redis-core

What comes with it

29 578 bytes besides the instruction
.cursor-plugin/plugin.json
evals/core/baselines/README.md
evals/core/baselines/aggregate-benchmark.json
evals/core/baselines/aggregate-benchmark.md
evals/core/baselines/baseline.json
evals/core/baselines/model-matrix.json
evals/core/evals.json
evals/core/model-matrix.json
references/choose-data-structure.md
references/key-naming.md

The instruction itself

5 sections, as written by the author

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 case | Recommended type | Why |

|---|---|---|

| Simple values, counters | String | Atomic INCR/DECR, SET/GET |

| Object with independently updated fields | Hash | Per-field reads/writes, no whole-object rewrite |

| Queue, recent-N items | List | O(1) push/pop at ends |

| Unique items, membership checks | Set | O(1) SADD/SISMEMBER/SCARD |

| Rankings, score-based ranges | Sorted Set | Score-ordered; ZADD/ZRANGE/ZRANK |

| Nested / hierarchical data | JSON | Path-level updates, nested arrays, RQE indexing |

| Event log, fan-out messaging | Stream | Persistent, consumer groups |

| Vector similarity | Vector Set | Native 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 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:profile
user:1001:settings
order:2024:items
session:abc123
article:987:likes
game: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 for cleanup examples and edge cases.

References

How to use it

Copy the folder

Take redis/redis-core from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.