redis-clustering

द्वारा redis

Redis Cluster और प्रतिकृति मार्गदर्शन जिसमें मल्टी-की संचालन के लिए हैश टैग, CROSSSLOT त्रुटियों से बचना, और रीड-हैवी कार्यों को स्केल करने के लिए प्रतिकृतियों से पढ़ना शामिल है…

npx skills add https://github.com/redis/agent-skills --skill redis-clustering

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 CROSSSLOT error on MGET, 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 cluster

Rules 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.

See references/hash-tags.md.

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 replica

For 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

redis की और Skills

docs-sync
redis
मास्टर ब्रांच के कार्यान्वयन और कॉन्फ़िगरेशन का विश्लेषण करें ताकि docs/, README.md, और प्रति-पैकेज README में गायब, गलत, या पुराने दस्तावेज़ का पता लगाया जा सके। उपयोग करें…
redis-query-engine
redis
Redis Query Engine (RQE) मार्गदर्शन जिसमें FT.CREATE स्कीमा डिज़ाइन, फ़ील्ड प्रकार चयन (TEXT, TAG, NUMERIC, GEO, GEOSHAPE, VECTOR), DIALECT 2 क्वेरी सिंटैक्स शामिल है,…
redis-search
redis
Redis Search मार्गदर्शन जिसमें FT.CREATE स्कीमा डिज़ाइन, फ़ील्ड प्रकार चयन (TEXT, TAG, NUMERIC, GEO, GEOSHAPE, VECTOR, JSON path), DIALECT 2 क्वेरी सिंटैक्स शामिल है,…
redis-security
redis
Redis सुरक्षा मार्गदर्शन जिसमें प्रमाणीकरण (requirepass और ACL उपयोगकर्ता), TLS, ACL-आधारित न्यूनतम-विशेषाधिकार पहुँच नियंत्रण, नेटवर्क एक्सपोज़र को प्रतिबंधित करना शामिल है…
redis-semantic-cache
redis
Redis LangCache का उपयोग Redis Cloud पर LLM प्रतिक्रियाओं के सिमैंटिक कैशिंग के लिए — SDK या REST API के माध्यम से search/set को कॉल करना, समानता सीमा को ट्यून करना,…
redis-vector-search
redis
Redis वेक्टर खोज मार्गदर्शन जिसमें HNSW बनाम FLAT एल्गोरिदम चयन, वेक्टर इंडेक्स कॉन्फ़िगरेशन (dims, दूरी मीट्रिक, डेटाटाइप), फ़िल्टर्ड हाइब्रिड खोज…
bump-test-image
redis
डिफ़ॉल्ट Redis डॉकर टेस्ट इमेज (redislabs/client-libs-test) को साझा DEFAULT_DOCKER_CONFIG और CI मैट्रिक्स में बढ़ाएँ, फिर फ़ोर्स-पुश करें…
i18n
redis
RedisInsight UI के लिए अंतर्राष्ट्रीयकरण परंपराएँ (i18next)। redisinsight/ui/** के अंतर्गत उपयोगकर्ता-सामने वाले स्ट्रिंग जोड़ते या बदलते समय उपयोग करें, संपादन करते समय…