⏱️2 min read · 373 words

रेडिस2026 में सबसे व्यापक रूप से उपयोग किया जाने वाला इन-मेमोरी डेटा स्टोर है। सब-मिलीसेकंड रीड्स, पब/सब मैसेजिंग और एटॉमिक ऑपरेशंस इसे कैशिंग, सेशन स्टोरेज, रेट लिमिटिंग और रियल-टाइम लीडरबोर्ड के लिए आवश्यक बनाते हैं। यह ट्यूटोरियल रेडिस को इंस्टॉल से लेकर उत्पादन पैटर्न तक कवर करता है।
📋 Table of Contents
रेडिस स्थापित करें
# Ubuntu
sudo apt install redis-server
sudo systemctl enable redis-server
# macOS
brew install redis
brew services start redis
# Docker (simplest)
docker run -d --name redis -p 6379:6379 redis:7-alpine
# Connect
redis-cli ping # PONG
बुनियादी डेटा प्रकार
# String
SET user:1:name 'Alice'
GET user:1:name # Alice
SETEX session:abc 3600 'user_id=1' # TTL 1 hour
# Hash (object)
HSET user:1 name Alice email alice@example.com age 30
HGET user:1 name # Alice
HGETALL user:1 # all fields
# List
LPUSH queue:jobs 'job1' 'job2' 'job3'
RPOP queue:jobs # job1 (queue behavior)
LRANGE queue:jobs 0 -1 # all items
# Set
SADD tags:post:1 python redis backend
SMEMBERS tags:post:1
SISMEMBER tags:post:1 python # 1 = true
# Sorted Set (leaderboard)
ZADD leaderboard 1500 'Alice' 2200 'Bob' 1800 'Carol'
ZREVRANGE leaderboard 0 2 WITHSCORES # top 3
पायथन के साथ रेडिस
pip install redis
import redis
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
# Cache pattern
def get_user(user_id: int) -> dict:
key = f'user:{user_id}'
cached = r.hgetall(key)
if cached:
return cached
# Cache miss — fetch from DB
user = db.get_user(user_id) # your DB query
r.hset(key, mapping=user)
r.expire(key, 3600) # 1 hour TTL
return user
# Rate limiting
def rate_limit(ip: str, limit: int = 100) -> bool:
key = f'rate:{ip}'
count = r.incr(key)
if count == 1:
r.expire(key, 60) # 60-second window
return count <= limit
पब/उप मैसेजिंग
import redis, threading
r = redis.Redis(decode_responses=True)
# Publisher
def publish_event(channel: str, data: str):
r.publish(channel, data)
# Subscriber
def subscribe_events():
pubsub = r.pubsub()
pubsub.subscribe('events')
for message in pubsub.listen():
if message['type'] == 'message':
print(f'Received: {message["data"]}')
# Run subscriber in background thread
t = threading.Thread(target=subscribe_events, daemon=True)
t.start()
publish_event('events', 'user_logged_in:123')
रेडिस स्ट्रीम्स (आधुनिक कतार)
# Produce
XADD events:orders * user_id 123 amount 49.99 item laptop
# Consume (consumer group)
XGROUP CREATE events:orders workers $ MKSTREAM
XREADGROUP GROUP workers consumer1 COUNT 10 STREAMS events:orders >
# Acknowledge
XACK events:orders workers <message-id>
उत्पादन युक्तियाँ
- सेट
maxmemoryऔरmaxmemory-policy allkeys-lruOOM को रोकने के लिए - |||| के साथ दृढ़ता सक्षम करें (एओएफ) क्रैश रिकवरी के लिए
appendonly yesPython - में कनेक्शन पूलिंग (||||) का उपयोग करें सभी कुंजियों को सेवा के अनुसार उपसर्ग करें:
redis.ConnectionPool, - |||| के साथ मॉनिटर करें और
auth:session:...निष्कर्षcache:user:... - रेडिस सिर्फ एक कैश नहीं है – यह एक डेटा संरचना सर्वर है। तत्काल कैशिंग, दर सीमित करने, सत्र भंडारण और वास्तविक समय सुविधाओं के लिए किसी भी बैकएंड में रेडिस जोड़ें। प्रति सेकंड लाखों अनुरोधों पर उप-मिलीसेकंड संचालन इसे आधुनिक वास्तुकला में अपूरणीय बनाता है।
redis-cli info statsandredis-cli monitor
Conclusion
Redis is not just a cache — it is a data structure server. Add Redis to any backend for instant caching, rate limiting, session storage, and real-time features. Sub-millisecond operations at millions of requests per second make it irreplaceable in modern architectures.
🔗 Share this article
✍️ Leave a Comment