स्नीकर और मर्चेंडाइज़ ड्रॉप
लिमिटेड एडिशन सेकंडों में बिक जाते हैं, और एक भी जोड़ी ज़्यादा नहीं बिकती।
जब दस हज़ार खरीदार एक ही सेकंड में Buy दबाएँ, तब ठीक उतना ही स्टॉक बेचें जितना आपके पास है, और bots को बाहर रखें।
500 यूनिट बिक्री पर जाती हैं।
असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।
फ्लैश सेल में इन्वेंटरी डेटाबेस ठीक तब bottleneck बन जाता है जब उसकी सबसे ज़्यादा ज़रूरत होती है। पहले पढ़कर फिर लिखने वाली जाँचें concurrency में ज़रूरत से ज़्यादा बेच देती हैं, छोड़े गए कार्ट स्टॉक को हमेशा के लिए रोक लेते हैं, और असली ग्राहकों का पेज लोड होने से पहले ही bots स्टॉक खरीद लेते हैं।
स्टॉक एक काउंटर में रहता है जिसे atomically घटाया जाता है, इसलिए एक साथ आए खरीदार कभी मौजूद स्टॉक से ज़्यादा नहीं ले सकते। हर रिज़र्वेशन दस मिनट की expiry वाली एक key है, हर ग्राहक पर रेट लिमिट bots को धीमा करती है, और कन्फ़र्म हुए ऑर्डर एक स्ट्रीम में जाते हैं ताकि fulfilment अपनी गति से उन्हें प्रोसेस करे।
500 यूनिट बिक्री पर जाती हैं।
SET stock:sneaker-x 500हर ग्राहक 10 सेकंड में दो बार कोशिश कर सकता है। Bots तुरंत यह सीमा पार कर देते हैं।
GCRA.LIMIT buy:customer:881 10000 2DECR atomic है। 10,000 एक साथ आए क्लिक भी 500 से ज़्यादा यूनिट नहीं ले सकते।
DECR stock:sneaker-xचेकआउट छोड़ दिया जाए तो रिज़र्वेशन अपने आप expire हो जाता है, और एक sweeper यूनिट को वापस रख देता है।
SET hold:sneaker-x:order-7781 customer:42 NX EX 600जब DECR शून्य से नीचे जाता है, तो यूनिट लौटा दी जाती है और खरीदार को sold out दिखता है। स्टॉक देर तक negative नहीं रहता।
INCR stock:sneaker-xभुगतान हो चुके ऑर्डर एक स्ट्रीम में जोड़े जाते हैं। वेयरहाउस सिस्टम उन्हें अपनी गति से निपटाता है।
XADD orders * order 7781 sku sneaker-x customer 42लिमिटेड एडिशन सेकंडों में बिक जाते हैं, और एक भी जोड़ी ज़्यादा नहीं बिकती।
चेकआउट के दौरान सीटें कुछ मिनटों के लिए होल्ड रहती हैं, और खरीदार चला जाए तो अपने आप छूट जाती हैं।
डिलीवरी स्लॉट काउंटर होते हैं, जिन्हें ग्राहकों के बुक करते ही atomically घटाया जाता है।
DECR और INCR बिना किसी race के एक ही कदम में स्टॉक बदलते हैं।
DECRINCRBYरिज़र्वेशन TTL वाली keys होते हैं।
SETNXEXहर ग्राहक की लिमिट, और दोबारा कोशिश का सटीक समय।
GCRA.LIMITFulfilment के लिए एक स्ट्रीम, consumer groups और acknowledgements के साथ।
XADDXREADGROUPExpire हुए होल्ड keyspace notifications या समय-समय पर होने वाले sweep से पकड़े जा सकते हैं, जो स्टॉक काउंटर को फिर से बढ़ा देता है।
हाँ। GET मौजूदा गिनती लौटाता है। सिर्फ़ DECR रिज़र्व करता है।
कई काउंटरों को एक साथ घटाने के लिए MULTI और EXEC, या एक function इस्तेमाल करें।
HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।