تكرار Redis و Redis Sharding (الكتلة) الفرق
-
22-09-2019 - |
سؤال
- هل يعرف أي شخص الفرق بين تكرار Redis و Redis Sharding؟
- ماذا يستخدمون؟ Redis يخزن البيانات في الذاكرة ، كيف يؤثر هذا على النسخ المتماثل/التقش؟
- هل من الممكن استخدام كلاهما معًا؟
شكرًا لك!
المحلول
Sharding هو نقيض النسخ المتماثل تقريبًا ، على الرغم من أنها مفاهيم متعامدة وتعمل بشكل جيد معًا.
Sharding ، المعروف أيضًا باسم التقسيم ، يقسم البيانات بواسطة المفتاح ؛ في حين أن النسخ المتماثل ، المعروف أيضًا باسم النسخ المتطابق ، هو نسخ جميع البيانات.
يعد SHARDING مفيدًا لزيادة الأداء ، مما يقلل من الضربة والذاكرة على أي مورد واحد. النسخ المتماثل مفيد لارتفاع توافر القراءات. إذا قرأت من نسخ متماثلة متعددة ، فسوف تقلل أيضًا من معدل الضغط على جميع الموارد ، لكن متطلبات الذاكرة لجميع الموارد تظل كما هي. تجدر الإشارة إلى أنه بينما يمكنك الكتابة إلى العبد ، فإن النسخ المتماثل هو Master-> Slave فقط. لذلك لا يمكنك التوسع في الكتابة بهذه الطريقة.
لنفترض أن لديك tuples التالية: [1: Apple] ، [2: Banana] ، [3: Cherry] ، [4: Durian] ولدينا آليتان A و B. مع Sharding ، قد نقوم بتخزين المفاتيح 2،4 الآلة أ ؛ ومفاتيح 1،3 على الآلة B. مع النسخ المتماثل ، نقوم بتخزين مفاتيح 1،2،3،4 على الجهاز A و 1،2،3،4 على الجهاز B.
عادة ما يتم تنفيذ Sharding من خلال أداء تجزئة متسقة على المفتاح. تم تنفيذ المثال أعلاه مع وظيفة التجزئة التالية H (x) {return x ٪ 2 == 0؟ a: b}.
للجمع بين المفاهيم ، قد نكرر كل قشرة. في الحالات المذكورة أعلاه ، يمكن تكرار جميع البيانات (2،4) من الجهاز A على الجهاز C ويمكن تكرار جميع البيانات (1،3) من الجهاز B على الماكينة D.
أي متجر قيمة رئيسي (من مثال واحد فقط منه) يدعم Sharding ، على الرغم من أن بعض الوظائف المتقاطعة لن تعمل بعد الآن. Redis يدعم النسخ المتماثل خارج الصندوق.
نصائح أخرى
بالكلمات البسيطة ، فإن الفرق الأساسي بين المفهومين هو أن Sharding يستخدم لتوسيع نطاق الكتابة أثناء استخدام النسخ المتماثل لتوسيع نطاق القراءات. كما ذكر Alex بالفعل ، فإن النسخ المتماثل هو أيضًا أحد الحلول لتحقيق HA.
نعم ، يتم استخدام كلاهما معًا إذا كنت تفكر في كيفية تكرار شظايا عبر العقد في الكتلة.
فيما يتعلق بسؤالك الثالث ، بدلاً من خيار RAM-Flush ، من الأفضل استخدام ملف Redis Aspend فقط (AOF). بتكلفة بسيطة فقط (من حيث سرعة الكتابة) ، تحصل على مزيد من الموثوقية لكتسبك. هو تماما مثل السجل الثنائي mySQL. 1 FSYNC/Second هو الخيار الموصى به للاستخدام.