البيانات الأساسيةالتجارة الإلكترونية

التخفيضات الخاطفة والمخزون

بع المخزون الذي لديك بالضبط عندما ينقر عشرة آلاف متسوق على زر الشراء في الثانية نفسها، وأبعد الروبوتات.

إنقاص المخزون
ذري
وحدات مبيعة فوق المتاح
0
حجوزات تُحرَّر تلقائيًا
10 دقائق
الخطوة 1 من 6
حمّل المخزون

تُطرح 500 وحدة للبيع.

جلسة توضيحيةplaying
# حمّل المخزون
hotkv> SET stock:sneaker-x 500
OK

عرض متحرك بأوامر HotKV حقيقية وردود توضيحية. انقر على أي خطوة للانتقال إليها. تبقى الأوامر والردود بالإنجليزية، تمامًا كما تكتبها وتراها في HotKV.

المشكلة

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

كيف يتعامل HotKV معها

يعيش المخزون في عداد يُنقَص بشكل ذري، فلا يستطيع المشترون المتزامنون أبدًا أخذ أكثر مما هو موجود. كل حجز مفتاح ينتهي بعد عشر دقائق، وحد المعدل لكل عميل يبطئ الروبوتات، والطلبات المؤكدة تذهب إلى تدفق يعالجه فريق التنفيذ بوتيرته الخاصة.

خطوة بخطوة

ما يحدث، أمرًا بأمر

  1. 01

    حمّل المخزون

    تُطرح 500 وحدة للبيع.

    SET stock:sneaker-x 500
  2. 02

    أبقِ الروبوتات تحت السيطرة

    يحق لكل عميل محاولتان كل 10 ثوانٍ. والروبوتات تتجاوز ذلك فورًا.

    GCRA.LIMIT buy:customer:881 10000 2
  3. 03

    خذ وحدة واحدة

    DECR ذري. ولا تستطيع 10,000 نقرة متزامنة أبدًا أخذ أكثر من 500 وحدة.

    DECR stock:sneaker-x
  4. 04

    احجزها عشر دقائق

    ينتهي الحجز تلقائيًا إذا تُرك الدفع، ويعيد ماسحٌ دوري الوحدة إلى المخزون.

    SET hold:sneaker-x:order-7781 customer:42 NX EX 600
  5. 05

    التعامل مع نفاد الكمية

    عندما ينزل DECR تحت الصفر، تُعاد الوحدة ويرى المتسوق أن الكمية نفدت. ولا يبقى المخزون سالبًا لفترة طويلة أبدًا.

    INCR stock:sneaker-x
  6. 06

    سلّم الطلبات إلى التنفيذ

    تُلحق الطلبات المدفوعة بتدفق. ويعالجها نظام المستودع بوتيرته الخاصة.

    XADD orders * order 7781 sku sneaker-x customer 42
أين يناسب

سيناريوهات من الواقع

إطلاقات الأحذية والبضائع

تنفد الإصدارات المحدودة في ثوانٍ دون بيع زوج واحد فوق المتاح.

التذاكر

تُحجز المقاعد لبضع دقائق أثناء الدفع وتُحرَّر تلقائيًا إذا غادر المشتري.

توصيل الطعام والبقالة

مواعيد التوصيل عدادات تُنقَص بشكل ذري مع حجز العملاء لها.

مدمج

ما تحصل عليه

عدادات ذرية

يغيّر DECR وINCR المخزون في خطوة واحدة دون تسابق.

DECRINCRBY

حجوزات تنتهي صلاحيتها

الحجوزات مفاتيح مع TTL.

SETNXEX

الحماية من الروبوتات

حدود لكل عميل مع وقت دقيق لإعادة المحاولة.

GCRA.LIMIT

تسليم الطلبات

تدفق للتنفيذ، مع مجموعات مستهلكين وإقرارات.

XADDXREADGROUP

أسئلة شائعة

كيف تعيد الحجوزات المنتهية المخزون؟

يمكن رصد الحجوزات المنتهية عبر إشعارات keyspace أو مسح دوري، يزيد عداد المخزون مجددًا.

هل يمكنني التحقق من المخزون دون أخذه؟

نعم. يعيد GET العدد الحالي. ولا يحجز إلا DECR.

وماذا عن السلال متعددة العناصر؟

استخدم MULTI وEXEC، أو دالة، لإنقاص عدة عدادات معًا.

حالات استخدام ذات صلة

جرّبه على عبء عملك

يتحدث HotKV بروتوكول Redis، لذا يمكنك توجيه عميل موجود إليه وتشغيل هذه الأوامر نفسها.