Redis Clustering
RedisOfficialCreated by Redis, Inc.
- Skill
- Tool integration
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This guide provides essential patterns for operating Redis in a clustered or replicated environment. It addresses the common challenges of data sharding, specifically how to use hash tags to ensure related keys reside on the same slot to prevent CROSSSLOT errors during multi-key operations. Additionally, it outlines strategies for scaling read-heavy applications by offloading traffic to replicas, while highlighting the necessary trade-offs regarding data consistency.
What it does
- Explains the use of hash tags to group related keys within the same Redis Cluster slot.
- Provides guidance on avoiding CROSSSLOT errors during multi-key operations like MGET or pipelines.
- Demonstrates how to configure clients to route read traffic to replicas.
- Outlines the consistency trade-offs when reading from replicas.
- Offers rules of thumb for effective key design to prevent hotspots.
When to use it
- When designing key naming conventions for a sharded Redis Cluster.
- When debugging CROSSSLOT errors in multi-key commands or transactions.
- When optimizing performance for read-heavy workloads.
- When implementing caching, analytics, or dashboard features that can tolerate eventual consistency.
Advantages
- Prevents common runtime errors in clustered environments.
- Improves system scalability by distributing read load.
- Ensures predictable performance for multi-key operations.
- Provides clear, actionable patterns for both cluster and standalone replication.
Usage examples
- “How do I fix a CROSSSLOT error when using MGET in Redis Cluster?”
- The agent explains that MGET requires all keys to be in the same slot and demonstrates how to use hash tags like {user:1001} to force keys into the same slot.
- “How can I scale my Redis read traffic?”
- The agent provides code examples for enabling read-from-replicas in Redis Cluster or connecting separate clients to primary and replica nodes.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/redis/redis-clustering/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip redis-clustering.zip -d .agents/skills
Documentation by Redis, Inc.
Redis Clustering
Guidance for designing keys and routing reads in a sharded Redis Cluster (and in standalone primary/replica replication). Covers the two failure modes that bite most new cluster users: CROSSSLOT errors on multi-key operations, and overloading primaries with read traffic.
When to apply
Designing keys for a Redis Cluster deployment.
Debugging a
CROSSSLOTerror onMGET,SDIFF, transactions, or pipelines.Implementing transactions / Lua scripts that touch multiple keys.
Scaling out read traffic without adding shards.
1. Hash tags for multi-key operations
Redis Cluster distributes keys across 16,384 slots by hashing the key name. Any command that touches multiple keys (MGET, SDIFF, SUNIONSTORE, transactions, pipelines, Lua scripts with multiple KEYS[]) requires all keys to live on the same slot — otherwise the server returns a CROSSSLOT error.
Hash tags force this: the part between { and } is the only thing hashed for slot assignment, so two keys sharing a hash tag always land together.
# Same slot — multi-key ops work
redis.set("{user:1001}:profile", "...")
redis.set("{user:1001}:settings", "...")
redis.lmove("{user:1001}:pending", "{user:1001}:processed", "LEFT", "RIGHT")# Different keys, no hash tag — CROSSSLOT on multi-key commands in cluster mode
redis.set("user:1001:profile", "...")
redis.set("user:1001:settings", "...")
pipe = redis.pipeline()
pipe.get("user:1001:profile")
pipe.get("user:1001:settings")
pipe.execute() # CROSSSLOT error in clusterRules of thumb:
Use a tag scoped to the meaningful entity, e.g.
{user:1001}. Avoid bare{1001}— unrelated namespaces (purchase:{1001},employee:{1001}) would all collide on the same slot.Only tag where you actually need multi-key ops. Tagging everything creates hotspots and defeats the point of sharding.
A single-key command on a hash-tagged key works fine, so adding tags later is incremental — but renaming keys in production is painful, so plan tagging up front for entities you'll group.
2. Read replicas for read-heavy workloads
If reads dominate writes, route them to replicas to free primary capacity. Works both in Redis Cluster (each shard has 1+ replica) and in standalone primary/replica replication.
# Redis Cluster: enable replica reads on the client
from redis.cluster import RedisCluster
rc = RedisCluster(host="localhost", port=6379, read_from_replicas=True)
rc.set("key", "value") # → primary
value = rc.get("key") # → may be served by a replicaFor non-cluster setups, point two clients at the right nodes:
primary = Redis(host="primary-host", port=6379)
replica = Redis(host="replica-host", port=6379)
primary.set("key", "value")
value = replica.get("key")The trade-off is consistency: replicas are eventually consistent. Don't read your own writes from a replica; don't use replica reads for anything that requires strict freshness (financial balances, idempotency state). Good fits: cache layers, analytics, dashboards, recommendation feeds.
See references/read-replicas.md.
References
Files
- ATTRIBUTION.mdAdded by AutoGineer891 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md4.0 KiB
- references/hash-tags.md2.5 KiB
- references/read-replicas.md1.2 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Redis, Inc.
- Publisher
- Redis (Official)
- Source
- redis/agent-skills · skills/redis-clustering · commit 74708da
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Also distributed in
- redis/agent-skills
AutoGineer is not affiliated with or endorsed by Redis, Inc. or Redis.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download redis-clustering.zip