Redis: کیش اور قطاریں
VDS پر Redis انسٹال کرنا، پاس ورڈ اور لوکل ایڈریس سے بائنڈنگ، میموری کی حد اور eviction پالیسی، اور کیش اور قطار کے درمیان فرق۔
اپ ڈیٹ 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 کو باہر expose نہ کریں۔ اگر آپ کو بیرونی رسائی درکار ہے تو صرف 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 *استعمال نہ کریں: یہ کمانڈ تمام کیز پر iteration کے دوران Redis کو بلاک کر دیتی ہے۔ iteration کے لیےSCANاستعمال کریں۔