English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

التحليل في Redis

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

مزايا التوزيع

  • من خلال استخدام مجموع ذاكرة عدة أجهزة كمبيوتر، يمكننا بناء قاعدة بيانات أكبر.

  • من خلال استخدام عدة نواة وأجهزة كمبيوتر، يمكننا توسيع قدرة الحوسبة؛ من خلال استخدام عدة أجهزة كمبيوتر ومكتبات الشبكة، يمكننا توسيع عرض النطاق الترددي للشبكة.

قلة التوزيع

بعض الخصائص في Redis ليست جيدة في التوزيع:

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

  • لا يمكن استخدام المعاملات التي تتضمن عدة مفاتيح في Redis.

  • عند استخدام المناطق، يكون معالجة البيانات معقدة، مثل الحاجة إلى معالجة عدة ملفات rdb/aof، واستنساخ ملفات التخزين المستدامة من عدة عينات وأجهزة.

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

نوع المناطق

يوجد نوعان من التحليل في Redis. لنفترض أن لدينا أربعة أمثلة Redis R0، R1، R2، R3، وعدة keys مثل user:1، user:2 لتمثيل المستخدمين، هناك عدة طرق لاختيار أمثلة Redis لتخزين هذا key المحدد. أي أن هناك أنظمة مختلفة لتحويل key إلى Redis service.

تحليل النطاق

أبسط طريقة للتحليل هي التحليل بنطاق، وهو ت映射 مجموعة معينة من الأجسام إلى مثال Redis معين.

على سبيل المثال، سيتم تخزين المستخدمين من 0 إلى 10000 في مثال R0، والمستخدمين من 10001 إلى 20000 في R1، وهكذا.

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

تحليل الهاش

يوجد طريقة أخرى للتحليل هي التحليل الهاشي. هذا ينطبق على أي key، ولا يجب أن يكون في شكل object_name: مثل ما يلي بسيطًا:

  • استخدم دالة الهاش لتحويل key إلى عدد، مثل استخدام دالة الهاش crc32. عند تنفيذ crc32(foobar) على key foobar، سيتم إصدار عدد مشابه لـ 93024922.

  • لإجراء تصفية هذا العدد، قم بتحويله إلى رقم بين 0 و3، يمكنك ت映射 هذا العدد إلى أحد أمثلة Redis الأربعة. 93024922 % 4 = 2، مما يعني أن key foobar يجب أن يتم تخزينه في مثال R2. ملاحظة: عملية التصفية هي الحصول على الباقي بعد القسمة، وتحقيقها عادةً باستخدام علامة التبديل % في العديد من لغات البرمجة.