Redis Cluster هي حل شائع لتوسيع نطاق عمليات نشر Redis لتحقيق توافر أعلى ، وتحمل الأعطال ، وقذف البيانات عبر عقد متعددة. يتضمن التكوين الصحيح لمجموعة Redis العديد من أفضل الممارسات التي تضمن الأداء الأمثل والموثوقية والقدرة على الإدارة.
عمارة الكتلة وتكوين العقدة
تتطلب Redis Cluster ثلاثة العقد الرئيسية على الأقل للعمل بشكل موثوق. من الناحية المثالية ، يجب أن تحتوي مجموعة الإنتاج على ستة عقد على الأقل ، مع وجود كل سيد واحد أو أكثر من النسخ المتماثلة. يضمن هذا الإعداد توافرًا مرتفعًا ، مما يسمح بالفشل التلقائي في حالة فشل أي عقدة رئيسية. يتم تشغيل كل عقدة في وضع الكتلة ويجب أن يكون لها تكوينات محددة ممكّنة ، بما في ذلك:
- `` نعم ، نعم "لتمكين وضع الكتلة على كل مثيل redis.
-`cluster-confiG-file` تحديد الملف الذي يتم حفظ حالة عقدة الكتلة (على سبيل المثال ، noves.conf`).
-`cluster-node-timeout` تحديد الحد الأقصى للوقت الذي يمكن أن تكون فيه العقدة غير قابلة للوصول قبل اعتبارها فشلت (عادة ما يتم ضبطها على 5000 إلى 15000 ميلي ثانية).
تتم إدارة `cluster-config-file" بواسطة redis تلقائيًا ويجب عدم تحريرها يدويًا ، لأنها تحافظ على معلومات الحالة الحرجة مثل معرفات العقدة ، والتعيينات ، وملكية الفتحات. تقوم كل عقدة بتعيين معرف عقدة فريد من نوعه في بدء التشغيل ، والذي يستمر على مدى حياتها حتى إذا تغير IP أو المنفذ.
إعداد الأجهزة وإعداد الشبكة
يجب نشر العقد على أجهزة مادية أو افتراضية منفصلة لتجنب نقاط الفشل المفردة. يجب أن تسمح اتصال الشبكة بين العقد كل من منفذي اتصالات العميل (عادةً TCP 6379 أو منفذ الخدمة قيد الاستخدام) ومنفذ ناقل الكتلة (منفذ ميناء ثانٍ عادةً منفذ خدمة TCP + 10000 ، على سبيل المثال ، 16379) للتواصل الداخلي للكتلة.
تكوين واجهات الشبكة وجدران الحماية بعناية للسماح بحركة المرور هذه بين العقد واختياريًا بين العملاء والعقد العنقودية. يؤدي تعيين توجيه "BIND" إلى IPS خاص معين بدلاً من الربط لجميع الواجهات إلى تعزيز الأمان.
الثبات ومتانة البيانات
تمكين آليات الثبات مثل لقطات RDB أو AOF (ملف فقط) اعتمادًا على متانة البيانات المطلوبة ومقايضات الأداء. يوفر AOF متانة أفضل عن طريق تسجيل كل عملية كتابة ولكن قد يضيف زمن الوصول و IO. يمكن أن يساعد الجمع بين لقطات RDB مع AOF في تحقيق التوازن بين الأداء والمتانة.
تمكين "التذييل نعم" يتيح وضع AOF. يجب ضبط هذه الإعدادات بعناية وفقًا لأنماط عبء العمل ونوافذ فقدان البيانات المقبولة.
سياسات إدارة الذاكرة والإخلاء
قم بتكوين إعداد "MaxMemory" لضمان تناسب Redis في الذاكرة المتاحة على العقدة. حدد سياسة الإخلاء المناسبة باستخدام "maxmemory-policy" مثل "allkeys-lru" لاستخدام خوارزمية أقل استخدامًا في جميع المفاتيح عند الوصول إلى حدود الذاكرة. مراقبة ثابتة لاستخدام الذاكرة ونسب HIT/MISS أمر بالغ الأهمية.
تقوم Redis Cluster بشكل أفضل عندما تتناسب مجموعة البيانات بالكامل مع الذاكرة على كل عقدة. تجنب المبادلة المفرطة أو الإفراط في الذاكرة.
إدارة الفتحات وتوزيع البيانات
تقسم المجموعة مفاتيح الفضاء إلى 16384 فتحات تجزئة يتم توزيعها في جميع العقد الرئيسية. عند إنشاء المجموعة ، تأكد من تغطية جميع الفتحات بواسطة عقدة رئيسية. يجب أن يكون العملاء مدركين لتوجيه الاستعلامات إلى العقدة الصحيحة بناءً على حساب فتحة التجزئة.
تجنب العمليات التي تنطوي على مفاتيح متعددة تم تعيينها إلى فتحات مختلفة ، حيث تتطلب هذه الأوامر المتقاطعة محدودة أو أقل كفاءة.
استخدم أدوات مثل `redis-cli-Cluster Create` للاضطراب مجموعات مع تخصيص الفتحات المناسبة وتخصيص النسخة المتماثلة تلقائيًا.
تكوين العميل للوعي الكتلي
تكوين مكتبات العميل للتعامل مع تغييرات مجموعة مجموعة Redis بأمان. توفر العديد من مكتبات العملاء دعمًا للكتلة ، بما في ذلك الاكتشاف التلقائي وإعادة تكوين العقد العنقودية لأنها تفشل أو تعديل الفتحات. هذا يمنع أخطاء العميل ويحسن الموثوقية أثناء فشل العقدة أو عمليات التحجيم.
يجب تكوين العملاء لإعادة إعادة المحاولة أو طلب إعادة التوجيه والحفاظ على وجهات النظر المحدثة لحالة الكتلة.
اعتبارات الأمن
تأمين عقد الكتلة عن طريق تمكين مصادقة كلمة المرور (توجيه `quistepass`) ، والحد من وصول الشبكة عبر قواعد جدار الحماية ، وتقييد الواجهات المكشوفة عبر تكوين` bind`. استخدم تشفير TLS إن أمكن لحماية البيانات أثناء العبور.
تعطيل الوضع المحمي عند تشغيل redis في وضع الكتلة ولكن ضمان تكوينات الشبكات تعزل المجموعة عن العملاء غير الموثوق بهم.
المراقبة والصيانة
قم بتنفيذ مراقبة شاملة لصحة الكتلة ، بما في ذلك توافر العقدة ، والكمون ، واستخدام الذاكرة ، وتأخير النسخ المتماثل ، وتغييرات حالة الكتلة. يجب أن تكون الأدوات مثل Redis Sentinel أو منصات مراقبة الطرف الثالث أو حلول مزود السحابة جزءًا من الاستراتيجية التشغيلية.
اختبار آليات الفشل بانتظام وإجراء إعادة تشغيل العقدة التي يتم التحكم فيها أو تمارين التحجيم للتحقق من مرونة الكتلة.
ضبط الأداء
Tune Redis وتكوين الكتلة بناءً على تفاصيل عبء العمل:
- قلل من أوامر الحظر واستخدام خطوط الأنابيب أو البرامج النصية LUA لتحسين الإنتاجية.
-
- استخدم التجزئة المتسقة وتسمية المفتاح الذكي لتحسين توزيعات القمار.
- تجنب المفاتيح أو القيم الكبيرة وفكر في تقسيم الكائنات الكبيرة إلى أجزاء أصغر.
- استخدم آليات Redis Cluster الأصلية لتوسيع نطاقها أفقياً عن طريق إضافة أو إزالة العقد وإعادة التوازن.
النسخ الاحتياطي والاسترداد
استراتيجيات النسخ الاحتياطي للتصميم تتماشى مع إعداد الكتلة. استخدم لقطات RDB الدورية من العقد الرئيسية أو النسخ المتماثلة وتخزين النسخ الاحتياطية خارجيا. تجنب استعادة النسخ الاحتياطية مباشرة على كتلة حية دون فتحة مناسبة ومزامنة حالة العقدة.
للاسترداد ، استخدم الإجراءات الموصى بها من قبل Redis لإعادة بناء المجموعات من التكوينات المحفوظة والنسخ الاحتياطية.
ملخص
أفضل الممارسات لتغطية تكوين مجموعة Redis:
- إعداد ما لا يقل عن ثلاثة عقد رئيسية مع النسخ المتماثلة للتفشل.
-ضمان توجيهات التكوين المناسبة المتعلقة بالجملة ("تمكين الكتلة" ، و "Cluster-Config-File" ، و `cluster-node-timeout`).
- نشر العقد على أجهزة مناسبة مع إعدادات الشبكة الصحيحة لاتصالات العميل والحافلة الكتلة.
- تمكين سياسات الذاكرة والإخلاء في الثبات والضبط لمطابقة متطلبات عبء العمل.
- إدارة فتحات التجزئة بفعالية وضمان أن العملاء مدركين.
- تأمين المجموعة مع المصادقة وعناصر التحكم في الشبكة.
- مراقبة الكتلة الصحية والأداء بانتظام.
- التخطيط لعمليات النسخ الاحتياطي والاسترداد والتوسيع بعناية.