إعداد تجميع ردیس: التكوين المتقدم

إعداد تجميع Redis دليل تجميع Redis تحسين Redis

يوفر تجميع Redis حلاً قويًا لإنشاء قواعد بيانات داخل الذاكرة قابلة للتوسع وموزعة. من خلال تقسيم بياناتك وتوزيعها على عقد متعددة، يضمن تجميع Redis توفرًا عاليًا، وتحملًا للأخطاء، وقابلية للتوسع الأفقي.

يقدم هذا المقال شرحًا تفصيليًا لإعداد تجميع Redis، بما في ذلك الخيارات الأساسية والمتقدمة لتحسين الأداء. سواء كنت مبتدئًا أو مستخدمًا متقدمًا، سيساعدك هذا الدليل على تكوين وإدارة تجميع Redis بفعالية.

ما هو تجميع Redis؟

تجميع Redis هو عملية توزيع البيانات عبر عقد متعددة باستخدام تقنية الشردينج (Sharding) لضمان التوزيع وتحقيق التوافر العالي باستخدام النسخ المتماثلة.

فوائد تجميع Redis

  • تحسين قابلية التوسع: يمكن التعامل مع مجموعات بيانات أكبر بإضافة عقد جديدة.
  • التوافر العالي: تقليل فترات التعطل باستخدام التبديل التلقائي (Failover).
  • تحمل الأخطاء: حماية البيانات من الفقدان في حالة تعطل العقد.
  • بنية موزعة: تحسين توزيع الأحمال على الخوادم المختلفة.

المتطلبات المسبقة لإعداد تجميع Redis

قبل البدء، تأكد من توفر ما يلي:

  • إصدار Redis: استخدم Redis 5.0 أو أحدث (يوصى بـ Redis 6.2).
  • خادم Linux: نظام تشغيل مثل Ubuntu 20.04 أو CentOS 8.
  • عقد التجميع: ثلاث عقد على الأقل، سواء كانت خوادم فعلية أو افتراضية.
  • التبعية المطلوبة:
$ sudo apt install build-essential tcl wget
  • إعداد جدار الحماية: افتح المنافذ اللازمة (7000-7002 ومنافذ حافلة التجميع 17000-17002).

الخطوة 1: تثبيت Redis

تثبيت Redis عملية بسيطة. اتبع الخطوات التالية لتثبيته على خادمك.

  1. تحديث الحزم على النظام
$ sudo apt update && sudo apt upgrade -y
  1. تنزيل وفك ضغط Redis
$ wget http://download.redis.io/releases/redis-7.4.1.tar.gz  
$ tar xzf redis-7.4.1.tar.gz  
$ cd redis-7.4.1
  1. تجميع Redis وتثبيته
$ make  
$ sudo make install
  1. إجراء الاختبارات للتأكد من التثبيت
$ make test

الخطوة 2: إنشاء عقد التجميع لـ Redis

تحتاج كل عقدة Redis إلى تكوين فردي. لنقم بإعداد ثلاث نسخ Redis على نفس الجهاز. بالنسبة لإعدادات متعددة الخوادم، كرر العملية لكل خادم.

1. إنشاء أدلة العقد

$ mkdir -p ~/redis-cluster/{7000,7001,7002}

2. نسخ ملفات التكوين الخاصة بـ Redis

$ cp redis.conf ~/redis-cluster/7000/  
$ cp redis.conf ~/redis-cluster/7001/  
$ cp redis.conf ~/redis-cluster/7002/

3. تعديل ملفات التكوين لكل عقدة

قم بتحرير ملف التكوين لكل عقدة.

مثال لعقدة 7000:

$ nano ~/redis-cluster/7000/redis.conf

قم بتحديث الأسطر التالية:

port 7000  
cluster-enabled yes  
cluster-config-file nodes-7000.conf  
cluster-node-timeout 5000  
appendonly yes  
protected-mode no  
logfile "/var/log/redis-7000.log"
dir "/var/lib/redis/7000"

كرر نفس الخطوات للعقد 7001 و7002 مع تعديل إعدادات port وnodes-XXXX.conf وlogfile وdir.

الخطوة 3: تكوين متقدم لتجميع Redis

يدعم Redis خيارات تكوين إضافية لتحسين الأداء والموثوقية.

1. إعداد النسخ المتماثلة

لضمان التوافر العالي، قم بإعداد كل عقدة مع نسخ متماثلة. استخدم الخيار --cluster-replicas أثناء إنشاء التجميع (مشروح لاحقًا).

2. ضبط إدارة الذاكرة

حدد حدودًا للذاكرة لتجنب مشكلات نقص الذاكرة:

maxmemory 1gb  
maxmemory-policy allkeys-lru

3. تمكين الحماية بكلمة مرور

قم بتأمين التجميع باستخدام المصادقة:

requirepass "كلمةالمرورالخاصةبك"  
masterauth "كلمةالمرورالخاصةبك"

4. تفعيل التسجيل

قم بإعداد تسجيل مفصل للمراقبة:

loglevel notice  
logfile "/var/log/redis/cluster.log"

5. تخصيص إعدادات اللقطات (Snapshots)

قم بالتحكم في التخزين المؤقت:

save 900 1  
save 300 10  
save 60 10000  
rdbcompression yes

الخطوة 4: بدء تشغيل نسخ Redis

ابدأ كل عقدة باستخدام تكوينها الخاص:

$ redis-server ~/redis-cluster/7000/redis.conf  
$ redis-server ~/redis-cluster/7001/redis.conf  
$ redis-server ~/redis-cluster/7002/redis.conf

الخطوة 5: إنشاء تجميع Redis

  1. تثبيت أدوات CLI لـ Redis
    تأكد من توفر أداة redis-cli:
$ sudo apt install redis-tools
  1. إنشاء التجميع
    قم بتنفيذ الأمر التالي:
$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1

عندما يُطلب منك، اكتب yes للمتابعة.

الخطوة 6: اختبار تجميع Redis

  1. التحقق من العقد في التجميع
$ redis-cli -p 7000 cluster nodes
  1. التحقق من معلومات التجميع
$ redis-cli -p 7000 cluster info
  1. اختبار توزيع المفاتيح
$ redis-cli -p 7000 set مفتاح1 "قيمة1"  
$ redis-cli -p 7001 get مفتاح1

حل المشكلات الشائعة

  • عدم تواصل العقد:
    • تأكد من أن جميع العقد يمكنها الاتصال ببعضها.
    • تحقق من إعدادات جدار الحماية لضمان فتح المنافذ اللازمة.
  • فشل إنشاء التجميع:
    • تحقق من أن جميع العقد قيد التشغيل.
    • راجع السجلات للحصول على رسائل خطأ تفصيلية.
  • أخطاء المصادقة:
    • تأكد من إعداد كلمات مرور متطابقة عبر جميع العقد.

الأسئلة الشائعة

  • ما هي المنافذ الافتراضية المستخدمة في تجميع Redis؟
    • تستخدم مجموعات Redis المنافذ 7000 إلى 7002 للعقد والمنافذ 17000 إلى 17002 لاتصالات حافلة التجميع.
  • كيف يدير Redis تقسيم البيانات (Sharding)؟
    • يستخدم Redis آلية “hash-slot”، حيث يتم تقسيم مجموعة البيانات إلى 16,384 خانة وتوزيعها على العقد.
  • هل يمكن أن يمتد التجميع إلى مناطق جغرافية متعددة؟
    • نعم، ولكن يجب مراعاة زمن الانتقال (Latency) وموثوقية الشبكة عند نشر التجميع في مناطق متعددة.
  • كيف يمكنني إضافة عقدة جديدة إلى تجميع موجود؟
    • استخدم الأمر redis-cli --cluster add-node وحدد عنوان IP والمنفذ الخاص بالعقدة الجديدة.
  • هل يدعم تجميع Redis إعدادات متعددة الماستر؟
    • لا، يستخدم Redis بنية ماستر واحد لكل جزء (Shard) في التجميع.

الخلاصة

يضمن إعداد تجميع Redis أن تطبيقك يمكنه التعامل مع أعباء العمل المتزايدة مع الحد الأدنى من التوقف وتوفير عالي. باستخدام خيارات التكوين المتقدمة المذكورة هنا، يمكنك ضبط التجميع للحصول على أداء وأمان مثاليين. راقب التجميع باستمرار لحل المشكلات بشكل استباقي وقم بالتوسع حسب الحاجة.

LEAVE A COMMENT