Skip to content
VDS · قواعد البيانات

Redis: التخزين المؤقت وقوائم الانتظار

تثبيت Redis على VDS، وكلمة المرور والربط بعنوان محلي، وحد الذاكرة وسياسة الإخلاء، والفرق بين التخزين المؤقت وقائمة الانتظار.

آخر تحديث 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-12 GB256 MB
VDS-24 GB512 MB
VDS-38 GB1–2 GB
VDS-524 GB4–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بلوغ maxmemory مع سياسة noeviction
DENIED Redis is running in protected modeوصول خارجي مع bind 127.0.0.1 — وهذا مقصود
اختفاء البيانات بعد إعادة التشغيلالحفظ على القرص غير مفعّل
دخول الجهاز في swapمجموع maxmemory والخدمات الأخرى يتجاوز ذاكرة المستوى

لا تستخدم KEYS * على خادم إنتاجي: فالأمر يوقف Redis أثناء مروره على جميع المفاتيح. استخدم SCAN للمرور عليها.