Redis: कैश और क्यू
VDS पर Redis इंस्टॉल करना, पासवर्ड और लोकल एड्रेस से बाइंडिंग, मेमोरी लिमिट और इविक्शन पॉलिसी, और कैश तथा क्यू के बीच का अंतर।
23 अगस्त 2026 को अपडेट किया गया
Redis डेटा को मेमोरी में रखता है, इसीलिए इसका इस्तेमाल कैशिंग, सेशन, काउंटर और टास्क क्यू के लिए किया जाता है। VPS पर यह तभी तक काम आता है जब तक यह मेमोरी में फिट हो: फ्री मेमोरी से बड़ा वर्किंग सेट अब स्पीडअप नहीं, बल्कि क्रैश का कारण बनता है।
इंस्टॉलेशन
apt update && apt install -y redis-server # Debian, Ubuntu
dnf install -y redis # AlmaLinux, CentOS Stream
systemctl enable --now redis-server
redis-cli ping
PONG रिस्पॉन्स का मतलब है कि सर्वर चल रहा है।
ज़रूरी कॉन्फ़िगरेशन
/etc/redis/redis.conf फ़ाइल:
bind 127.0.0.1
protected-mode yes
requirepass long-random-password
maxmemory 512mb
maxmemory-policy allkeys-lru
appendonly no
systemctl restart redis-server
redis-cli -a 'password' ping
स्कैनर कुछ ही मिनटों में इंटरनेट पर खुले पासवर्ड-रहित Redis को ढूंढ लेते हैं और उसका इस्तेमाल माइनिंग के लिए करते हैं। अगर आपका एप्लिकेशन उसी मशीन पर है, तो bind 127.0.0.1 रखें और पोर्ट 6379 को बाहर एक्सपोज़ न करें। अगर आपको बाहरी एक्सेस चाहिए, तो सिर्फ़ SSH टनल या VPN इस्तेमाल करें।
मेमोरी और एविक्शन
maxmemory साफ़-साफ़ सेट करें: इसके बिना Redis तब तक बढ़ता रहता है जब तक सिस्टम प्रोसेस को मारना शुरू न कर दे। इसे टियर की मेमोरी का एक चौथाई देना वाजिब है।
| टियर | मशीन मेमोरी | maxmemory |
|---|---|---|
| VDS-1 | 2 GB | 256 MB |
| VDS-2 | 4 GB | 512 MB |
| VDS-3 | 8 GB | 1–2 GB |
| VDS-5 | 24 GB | 4–6 GB |
पॉलिसी भूमिका पर निर्भर करती है:
- कैश —
allkeys-lru, पुरानी कीज़ चुपचाप हटा दी जाती हैं; - टास्क क्यू —
noeviction, टास्क खोना अस्वीकार्य है, राइट एरर बेहतर है।
कैश और क्यू को एक ही डेटाबेस में बिल्कुल न मिलाएँ, ठीक इसी विरोधाभास की वजह से। इन्हें अलग डेटाबेस नंबर (SELECT 1) या दो इंस्टेंस में बाँटें।
डिस्क पर पर्सिस्टेंस
डिफ़ॉल्ट रूप से Redis समय-समय पर dump.rdb में स्नैपशॉट डंप करता है। शुद्ध कैश के लिए यह बेवजह डिस्क राइटिंग है — save बंद कर दें। क्यू के लिए appendonly yes चालू करें: इस तरह मशीन रीबूट होने के बाद भी टास्क नहीं खोएँगे।
ध्यान रखें कि डिस्क राइट स्पीड टियर से सीमित है: 60 MB/s प्रति कोर, 60 से कम नहीं और 400 MB/s से ज़्यादा नहीं।
मॉनिटरिंग
redis-cli -a 'password' info memory
redis-cli -a 'password' info stats
redis-cli -a 'password' --stat
redis-cli -a 'password' slowlog get 10
मुख्य मेट्रिक है evicted_keys: लगातार बढ़ना मतलब मेमोरी काफ़ी नहीं है और कैश फ़ायदेमंद नहीं है।
आम गलतियाँ
| लक्षण | कारण |
|---|---|
NOAUTH Authentication required | एप्लिकेशन को पासवर्ड नहीं दिया गया |
OOM command not allowed | noeviction पॉलिसी के साथ maxmemory तक पहुँच गया |
DENIED Redis is running in protected mode | bind 127.0.0.1 के साथ बाहरी एक्सेस — यह जानबूझकर ऐसा है |
| रीबूट के बाद डेटा गायब | पर्सिस्टेंस चालू नहीं है |
| मशीन स्वैप में चली गई | maxmemory और बाकी सर्विसेज़ का जोड़ टियर की मेमोरी से ज़्यादा है |
प्रोडक्शन सर्वर पर
KEYS *इस्तेमाल न करें: यह कमांड सभी कीज़ पर इटरेट करते हुए Redis को ब्लॉक कर देता है। इटरेशन के लिएSCANइस्तेमाल करें।