محتويات الدورة

Redis / الأساسي: المفاتيح والبنى المحدودة / الدرس 5

المجموعات والمجموعات المرتبة ونماذج الرتب

اختر العضوية أو ترتيب الدرجة بوعي وحدد التعادل والتفرد والدقة، واستخدم وصولاً محدوداً لا افتراض قائمة لكل مجموعة.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تمييز العضوية عن الدرجات والرتب.
  • تحديد التعادل الحتمي ومجالات العدد المناسبة.

تمثل المجموعة أعضاء فريدين بلا تسلسل

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

عد الأعضاء الجدد لا الوسائط المرسلة

افترض الغياب. تضيف SADD عضوين ثم تعيد صفر جديد عند الإعادة. تبقى SCARD اثنتين وتثبت SISMEMBER الوجود. قد يختلف ترتيب SMEMBERS فلا نختلق فرزاً. الردود من العينة، ولا يمنع تفرد الاسم تكرار أثر دفع مستقل يحتاج هوية ونتيجة.

redis عينة عضوية توضيحية
SADD lab:participants member-a member-b
SADD lab:participants member-a
SCARD lab:participants
SISMEMBER lab:participants member-a
الناتج المتوقع
2
0
2
1

المتوقع2 و0 و2 و1 دون ترتيب أعضاء.

تربط المجموعة المرتبة درجة واحدة بكل عضو

تحتفظ المرتبة بعضو فريد ودرجة، ويغير تحديثه موقعه لا يضيف نسخة. يرتب التعادل بمقارنة ثنائية معجمية للأعضاء، فتحقق من ملاءمتها. الدرجات عائمة ولا تضمن صحيحاً ضخماً أو مالاً دقيقاً. تختلف لوحة وترتيب موعد ورصيد رغم الأرقام، وحدد الاتجاه وبداية الرتبة صفر أم واحد.

افحص الدرجة والتعادل المقصودين محلياً

يرتب النموذج درجات تنازلياً وأسماء تصاعدياً للتعادل كسياسة تطبيق لا محاكاة لكل ZRANGE. يعكس REV ترتيب Redis ومنه التعادل، فاختر الأمر المطابق أو حول نتيجة محدودة بوعي. لا تستنتج الدلالة من صورة بلا تعادل.

python سياسة رتب تقرير محلية
scores = {'member-b': 20, 'member-a': 20, 'member-c': 10}
report = sorted(scores, key=lambda member: (-scores[member], member))
assert report == ['member-a', 'member-b', 'member-c']
assert len(scores) == 3

يثبت الناتج سياسة التعادل المحلية فقط ولتعادل Redis المعكوس دلالته الخاصة.

لا تحول كل سؤال عضوية لقراءة كاملة

استخدم العضوية والعدد والمجال المحدود وفق السؤال. قد تكلف العمليات والجلب الكبير الخادم والعميل. ليست صفحات الدرجة المتغيرة لقطة مستقرة فقد ينتقل العضو. ينتهي المفتاح عادة ككل فتحتاج دورة العنصر نموذجاً آخر. افحص السخونة والمتانة وإعادة البناء من المرجع ولا تعده دفتراً دائماً لمجرد ترتيبه.

الأخطاء الشائعة وإصلاحها

تعرض المجموعة بترتيب الإدخال

لماذا يحدث؟
عوملت العضوية كقائمة.
كيف تصلحه؟
اختر بنية مرتبة أو افرز نتيجة محدودة بسياسة.
كيف تتجنب تكراره؟
اختبر الترتيب لا تكراراً واحداً مرصوداً.

يعطي التعادل ترتيباً غير متوقع

لماذا يحدث؟
أُغفل التعادل الثنائي أو REV.
كيف تصلحه؟
حدد التعادل وافحص الاتجاه.
كيف تتجنب تكراره؟
ضمّن التعادل وقاعدة عرض الرتبة.

تفقد الدرجة دقة عددية

لماذا يحدث؟
خزن مجال غير مناسب كدرجة عائمة.
كيف تصلحه؟
استخدم تمثيلاً ومرجعاً يناسبان الدقة.
كيف تتجنب تكراره؟
اختبر الحدود ولا تعتبرها مالاً دقيقاً عاماً.

اختبر فهمك

1. يضاف مشارك مرتين. ماذا يعني صفر الرد الثاني؟

اعرض الحل المشروح

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

2. تحتاج لوحة تنازلية تعادلاً أبجدياً تصاعدياً. هل يفترضه REV؟

اعرض الحل المشروح

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

أهم ما تعلمته

  • التفرد والتسلسل والدرجة حقائق مختلفة.
  • التعادل والدقة والحدود جزء من النموذج.

المراجع الرسمية