Släpp av sneakers och merchandise
Begränsade upplagor säljer slut på sekunder utan att ett enda par överförsäljs.
Sälj exakt det lager du har när tiotusen kunder klickar på Köp under samma sekund, och håll botarna ute.
500 enheter går ut till försäljning.
En animerad genomgång med riktiga HotKV-kommandon och exempelsvar. Klicka på valfritt steg för att hoppa dit. Kommandon och svar förblir på engelska, precis som du skriver och ser dem i HotKV.
Vid en blixtrea är lagerdatabasen flaskhalsen precis när det betyder mest. Kontroller som läser och sedan skriver överförsäljer under samtidighet, övergivna varukorgar låser lagret för evigt, och botar köper lagret innan riktiga kunder hunnit läsa in sidan.
Lagret finns i en räknare som minskas atomärt, så att samtidiga köpare aldrig kan ta mer än det som finns. Varje reservation är en nyckel med tio minuters utgångstid, en hastighetsgräns per kund bromsar botarna, och bekräftade ordrar går in i en ström som leveransen bearbetar i sin egen takt.
500 enheter går ut till försäljning.
SET stock:sneaker-x 500Varje kund får försöka två gånger per 10 sekunder. Botar överskrider det direkt.
GCRA.LIMIT buy:customer:881 10000 2DECR är atomärt. 10 000 samtidiga klick kan aldrig ta mer än 500 enheter.
DECR stock:sneaker-xReservationen löper ut av sig själv om kassan överges, och en rensare lägger tillbaka enheten.
SET hold:sneaker-x:order-7781 customer:42 NX EX 600När DECR går under noll lämnas enheten tillbaka och kunden ser slutsålt. Lagret går aldrig negativt under någon längre tid.
INCR stock:sneaker-xBetalda ordrar läggs till i en ström. Lagersystemet arbetar sig igenom dem i sin egen takt.
XADD orders * order 7781 sku sneaker-x customer 42Begränsade upplagor säljer slut på sekunder utan att ett enda par överförsäljs.
Platser reserveras några minuter under kassan och släpps automatiskt om köparen lämnar.
Leveranstider är räknare som minskas atomärt när kunder bokar dem.
DECR och INCR ändrar lagret i ett steg utan race.
DECRINCRBYReservationer är nycklar med en TTL.
SETNXEXGränser per kund med en exakt återförsökstid.
GCRA.LIMITEn ström för leveransen, med konsumentgrupper och kvittenser.
XADDXREADGROUPUtgångna reservationer kan upptäckas via nyckelrymdsnotiser eller en periodisk rensning, som ökar lagerräknaren igen.
Ja. GET returnerar det aktuella antalet. Bara DECR reserverar.
Använd MULTI och EXEC, eller en funktion, för att minska flera räknare tillsammans.
HotKV talar Redis-protokollet, så du kan peka en befintlig klient mot det och köra samma kommandon.