خطوات الاستخدام
أدخل عدد العقد الرئيسية (Master Nodes) في مجموعة Redis الخاصة بك. هذا العدد يجب أن يكون عددًا صحيحًا موجبًا، ويمثل عدد الخوادم المسؤولة عن تخزين البيانات في الكتلة (Cluster). كل عقدة رئيسية تدير مجموعة من فتحات التجزئة (Hash Slots).
افهم أن مجموعة Redis تقوم بتقسيم مساحة المفاتيح إلى 16384 فتحة تجزئة (Hash Slot). هذا العدد ثابت ولا يتغير، وهو محدد بواسطة بروتوكول Redis Cluster. يتم توزيع هذه الفتحات بشكل متساوٍ بين العقد الرئيسية لإتاحة التوازن في تحميل البيانات.
لحساب عدد فتحات التجزئة لكل عقدة رئيسية، استخدم الصيغة: عدد الفتحات لكل عقدة = 16384 ÷ عدد العقد الرئيسية. الناتج قد يكون عددًا عشريًا، لكن في الواقع العملي يجب توزيع الفتحات كأعداد صحيحة مع مراعاة الباقي. على سبيل المثال، إذا كان الباقي غير صفري، يتم توزيعه على بعض العقد بحيث تكون الفروق طفيفة.
قم بتقريب النتيجة إلى أقرب عدد صحيح في حال عدم الحاجة إلى دقة عشرية، ولكن في الأنظمة الحقيقية، تستخدم خوارزميات لتوزيع الفتحات بأعداد صحيحة مع ضمان توازن الحمل. يمكن استخدام هذه الحاسبة للحصول على القيمة التقريبية الأولية، لكن التوزيع الدقيق يتم بواسطة أوامر Redis Cluster.
استخدم الناتج لفهم توزيع البيانات في كتلتك. على سبيل المثال، إذا كنت تخطط لإضافة أو إزالة عقد رئيسية، ستحتاج إلى إعادة توزيع الفتحات (Resharding) للحفاظ على التوازن. هذه الحاسبة تساعد في تقدير التوزيع قبل القيام بعملية إعادة التوزيع.
أمثلة محلولة
تطبيقات عملية على فتحات تجمع Redis بخطوات الحل كاملة.
الحل
نحسب باستخدام الصيغة: 16384 ÷ 3 = 5461.333... أي أن كل عقدة ستحصل على 5461 فتحة تقريبًا، مع بقاء فتحة واحدة (1 = 16384 - 3*5461). في التطبيق العملي، ستحصل عقدتان على 5461 فتحة والعقدة الثالثة على 5462 فتحة. هذا التوزيع يكاد يكون متساويًا وضمن الحدود المقبولة. يمكنك استخدام الأمر CLUSTER SLOTS في Redis لرؤية التوزيع الفعلي.
الحل
الحساب: 16384 ÷ 5 = 3276.8، أي تقريبًا 3277 فتحة لكل عقدة إذا تم التوزيع بالتساوي. لكن دقيقًا، ستحصل ثلاث عقد على 3277 فتحة وعقدتان على 3276 فتحة (لأن 3277*3 + 3276*2 = 16383، ويتبقى فتحة واحدة لتجعل المجموع 16384؟ تحقق: 3277*3=9831، 3276*2=6552، المجموع 16383، لذا نحتاج فتحة إضافية، إذًا التوزيع الأمثل: ثلاث عقد تحصل على 3277 وعقدتان تحصل على 3276؟ لنحسب: 3277*3 + 3276*2 = 9831+6552=16383، ناقص 1، لذا يجب أن تحصل إحدى العقد على 3278. التوزيع الدقيق هو 4 عقد بـ 3276 وعقدة بـ 3280؟ لا، الأفضل أن يكون الفرق صغيرًا. عادةً ما يتم توزيع الباقي (16384 mod 5 = 4) على أربع عقد بإضافة فتحة واحدة لكل منها. لذا ستحصل 4 عقد على 3277 فتحة وعقدة على 3276 فتحة (المجموع: 3277*4 + 3276 = 13108+3276=16384). صحيح. هذا مثال على أن التوزيع ليس دقيقًا دائمًا. بالنسبة للأداء، كلما زاد عدد العقد الرئيسية، قل عدد الفتحات لكل عقدة، مما يعني توزيعًا أدق للبيانات وحمل أقل على كل عقدة، لكنه يزيد من تعقيد إدارة الكتلة. عمليًا، يوصى بعدد عقد بين 3 و10 للكتل الصغيرة والمتوسطة.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة فتحات تجمع Redis.
مرجع — ثلاث عقد رئيسية
- عدد العقد الرئيسية
- 3
مرجع — خمس عقد
- عدد العقد الرئيسية
- 5
مرجع — ست عقد (حد التوزيع العملي)
- عدد العقد الرئيسية
- 6