球鞋與商品限量開賣
限量版在幾秒內售罄,而且一雙都不會超賣。
當一萬名購物者在同一秒按下購買時,賣出的數量正好就是您的庫存,並擋下機器人。
500 個單位開賣。
以真實 HotKV 指令與範例回覆呈現的動畫導覽。點擊任一步驟即可跳到該步驟。 指令與回覆維持英文,與您在 HotKV 中輸入及看到的完全一致。
在限時搶購中,庫存資料庫正好在最關鍵的時刻成為瓶頸。先讀後寫的檢查在並行下會超賣,被放棄的購物車會永遠鎖住庫存,而機器人在真正的顧客還在載入頁面時,就把庫存買光了。
庫存存放在以原子方式遞減的計數器中,因此並行的買家永遠無法買走超過現有的數量。每筆保留是一個有十分鐘到期時間的鍵,依顧客設定的速率限制會減緩機器人,而確認後的訂單則進入串流,由出貨以自己的步調處理。
500 個單位開賣。
SET stock:sneaker-x 500每位顧客每 10 秒最多可嘗試兩次。機器人立刻就超過了。
GCRA.LIMIT buy:customer:881 10000 2DECR 是原子的。10,000 次並行點擊永遠無法拿走超過 500 個單位。
DECR stock:sneaker-x如果結帳被放棄,保留會自行到期,並由清掃程式把該單位放回去。
SET hold:sneaker-x:order-7781 customer:42 NX EX 600當 DECR 降到零以下時,該單位會被歸還,購物者會看到售罄。庫存不會長時間處於負數。
INCR stock:sneaker-x已付款的訂單會附加到串流。倉儲系統以自己的步調逐一處理。
XADD orders * order 7781 sku sneaker-x customer 42限量版在幾秒內售罄,而且一雙都不會超賣。
座位在結帳期間保留幾分鐘,如果買家離開,就會自動釋放。
配送時段是計數器,在顧客預約時以原子方式遞減。
DECR 與 INCR 一步就能改變庫存,沒有競爭條件。
DECRINCRBY保留是帶有 TTL 的鍵。
SETNXEX依顧客設定的限制,並提供精確的重試時間。
GCRA.LIMIT供出貨使用的串流,具備消費者群組與確認機制。
XADDXREADGROUP過期的保留可以透過鍵空間通知或定期清掃察覺,然後再次增加庫存計數器。
可以。GET 會回傳目前的數量。只有 DECR 才會保留。
使用 MULTI 與 EXEC,或使用函式,一起遞減多個計數器。