
يوفر تجميع 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 عملية بسيطة. اتبع الخطوات التالية لتثبيته على خادمك.
- تحديث الحزم على النظام
$ sudo apt update && sudo apt upgrade -y
- تنزيل وفك ضغط 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
- تجميع Redis وتثبيته
$ make
$ sudo make install
- إجراء الاختبارات للتأكد من التثبيت
$ 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
- تثبيت أدوات CLI لـ Redis
تأكد من توفر أداةredis-cli
:
$ sudo apt install redis-tools
- إنشاء التجميع
قم بتنفيذ الأمر التالي:
$ 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
- التحقق من العقد في التجميع
$ redis-cli -p 7000 cluster nodes
- التحقق من معلومات التجميع
$ redis-cli -p 7000 cluster info
- اختبار توزيع المفاتيح
$ 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 أن تطبيقك يمكنه التعامل مع أعباء العمل المتزايدة مع الحد الأدنى من التوقف وتوفير عالي. باستخدام خيارات التكوين المتقدمة المذكورة هنا، يمكنك ضبط التجميع للحصول على أداء وأمان مثاليين. راقب التجميع باستمرار لحل المشكلات بشكل استباقي وقم بالتوسع حسب الحاجة.