# मैसेज ब्रोकर के रूप में रेडिस — Redis Fundamentals: Caching, Data Structures और Persistence

Source: https://www.skillbyai.com/hi/redis/redis-message-broker

> Redis Pub/Sub की Streams से तुलना करें और जानें कि Kafka या RabbitMQ जैसा dedicated broker कब चुनना चाहिए।

## Pub/Sub फ़ायर-एंड-फ़ॉर्गेट है

साधारण Pub/Sub संदेश केवल **अभी** जुड़े subscribers को देता है — कुछ भी स्टोर नहीं होता, इसलिए ऑफ़लाइन consumer उसे हमेशा के लिए मिस कर देता है। **Redis Streams** (`XADD`/`XREAD`) एक टिकाऊ, दोबारा-पढ़ा जा सकने वाला लॉग जोड़ता है, जब संदेश खोना नहीं चाहिए।

## Kafka का विकल्प नहीं

हल्के, कम-देरी वाले मैसेजिंग के लिए रेडिस बेहतरीन है; बड़े, गारंटीड-टिकाऊ, कई-दिन लंबे इवेंट स्ट्रीम के लिए Kafka या RabbitMQ जैसा समर्पित ब्रोकर आमतौर पर बेहतर फ़िट है।

**Quiz:** क्या साधारण रेडिस Pub/Sub ऑफ़लाइन subscribers के लिए संदेश स्टोर करता है?

- [ ] हाँ, हमेशा के लिए
- [ ] हाँ, पर केवल 24 घंटे के लिए
- [x] नहीं — केवल अभी जुड़े subscribers को मिलता है
- [ ] केवल यदि AOF बंद हो

*Answer:* नहीं — केवल अभी जुड़े subscribers को मिलता है. Pub/Sub में कोई स्टोरेज नहीं है — जब ऑफ़लाइन consumers के लिए संदेश बचाना हो तो Redis Streams उपयोग करें।

## अंतिम क्विज़ 1/8

अंतिम क्विज़

**Quiz:** Live leaderboard के लिए कौन-सा Redis data type सबसे अच्छा है?

- [ ] List
- [ ] String
- [x] Sorted set
- [ ] Pub/Sub

*Answer:* Sorted set. Sorted sets members को score के अनुसार अपने-आप rank में रखते हैं।

## अंतिम क्विज़ 2/8

अंतिम क्विज़

**Quiz:** Production server पर keys को सुरक्षित रूप से iterate करने वाला command कौन-सा है?

- [ ] KEYS *
- [ ] FLUSHALL
- [ ] DEBUG
- [x] SCAN

*Answer:* SCAN. SCAN keyspace को छोटे non-blocking batches में चलता है।

## अंतिम क्विज़ 3/8

अंतिम क्विज़

**Quiz:** SET key value EX 60 क्या करता है?

- [x] Stores the value and expires it after 60 seconds
- [ ] Stores it for 60 days
- [ ] Appends 60 to the value
- [ ] Locks the key

*Answer:* Stores the value and expires it after 60 seconds. EX value के साथ seconds में TTL सेट करता है।

## अंतिम क्विज़ 4/8

अंतिम क्विज़

**Quiz:** Cache-aside में cache miss पर क्या होता है?

- [ ] Redis queries the database itself
- [x] The app reads the database and then fills the cache
- [ ] The request fails
- [ ] The cache is flushed

*Answer:* The app reads the database and then fills the cache. Application ही data को cache में load करने की जिम्मेदारी संभालता है।

## अंतिम क्विज़ 5/8

अंतिम क्विज़

**Quiz:** कौन-सा persistence option हर write command log करता है?

- [ ] RDB
- [ ] Pub/Sub
- [x] AOF
- [ ] Streams only

*Answer:* AOF. AOF commands replay करके न्यूनतम हानि के साथ dataset दोबारा बनाता है।

## अंतिम क्विज़ 6/8

अंतिम क्विज़

**Quiz:** Pure cache के लिए कौन-सी maxmemory-policy उपयुक्त है?

- [ ] noeviction
- [ ] volatile-ttl only
- [ ] none
- [x] allkeys-lru

*Answer:* allkeys-lru. सबसे कम हाल में उपयोग हुई keys हटाने से hot data memory में रहता है।

## अंतिम क्विज़ 7/8

अंतिम क्विज़

**Quiz:** Redis को सीधे internet पर expose करने से क्यों बचें?

- [x] It was designed for trusted networks and can be hijacked
- [ ] It becomes slower
- [ ] It stops persisting
- [ ] It disables TTLs

*Answer:* It was designed for trusted networks and can be hijacked. Private interfaces से bind करें, auth जरूरी रखें और firewall उपयोग करें।

## अंतिम क्विज़ 8/8

अंतिम क्विज़

**Quiz:** कौन-सा Redis feature messages का durable, replayable log रखता है?

- [ ] Plain Pub/Sub
- [x] Streams
- [ ] SCAN
- [ ] EXPIRE

*Answer:* Streams. Streams (XADD/XREAD) बाद में जुड़ने वाले consumers के लिए messages रखते हैं।
