Đợt mở bán giày và hàng lưu niệm
Các phiên bản giới hạn bán hết trong vài giây mà không bán vượt dù chỉ một đôi.
Bán đúng số hàng bạn có khi mười nghìn người mua nhấn Mua trong cùng một giây, và chặn các bot.
500 đơn vị được đưa ra bán.
Một hướng dẫn minh họa động với các lệnh HotKV thật và phản hồi ví dụ. Nhấn vào bất kỳ bước nào để nhảy tới đó. Lệnh và phản hồi giữ nguyên bằng tiếng Anh, đúng như bạn gõ và thấy trong HotKV.
Trong một flash sale, cơ sở dữ liệu tồn kho là nút thắt cổ chai đúng vào lúc quan trọng nhất. Kiểm tra kiểu đọc rồi ghi bán vượt số hàng khi có đồng thời, giỏ hàng bị bỏ dở khóa tồn kho mãi mãi, và các bot mua hết hàng trước khi khách thật tải xong trang.
Tồn kho nằm trong một bộ đếm được trừ nguyên tử, nên những người mua đồng thời không bao giờ lấy được nhiều hơn số hiện có. Mỗi lần giữ chỗ là một khóa có thời hạn mười phút, giới hạn tốc độ theo từng khách hàng làm chậm các bot, và các đơn hàng đã xác nhận đi vào một stream để bộ phận thực hiện đơn xử lý theo nhịp của riêng mình.
500 đơn vị được đưa ra bán.
SET stock:sneaker-x 500Mỗi khách hàng được thử hai lần trong 10 giây. Bot vượt mức đó ngay lập tức.
GCRA.LIMIT buy:customer:881 10000 2DECR là nguyên tử. 10.000 lượt nhấp đồng thời không bao giờ lấy được nhiều hơn 500 đơn vị.
DECR stock:sneaker-xLượt giữ chỗ tự hết hạn nếu thanh toán bị bỏ dở, và một trình quét trả đơn vị đó về.
SET hold:sneaker-x:order-7781 customer:42 NX EX 600Khi DECR xuống dưới không, đơn vị đó được trả lại và người mua thấy hết hàng. Tồn kho không bao giờ âm lâu.
INCR stock:sneaker-xCác đơn đã thanh toán được thêm vào một stream. Hệ thống kho xử lý chúng theo nhịp của riêng nó.
XADD orders * order 7781 sku sneaker-x customer 42Các phiên bản giới hạn bán hết trong vài giây mà không bán vượt dù chỉ một đôi.
Ghế được giữ vài phút trong lúc thanh toán và tự động được giải phóng nếu người mua rời đi.
Khung giờ giao hàng là các bộ đếm, được trừ nguyên tử khi khách hàng đặt chúng.
DECR và INCR thay đổi tồn kho trong một bước mà không có race.
DECRINCRBYLượt giữ chỗ là các khóa có TTL.
SETNXEXGiới hạn theo từng khách hàng với thời gian thử lại chính xác.
GCRA.LIMITMột stream cho việc thực hiện đơn, với nhóm consumer và xác nhận.
XADDXREADGROUPCác lượt giữ chỗ hết hạn có thể được nhận ra thông qua thông báo không gian khóa hoặc một lượt quét định kỳ, và nó tăng bộ đếm tồn kho trở lại.
Có. GET trả về số hiện tại. Chỉ DECR mới giữ chỗ.
Dùng MULTI và EXEC, hoặc một function, để trừ nhiều bộ đếm cùng nhau.
HotKV nói giao thức Redis, nên bạn có thể trỏ một client hiện có tới nó và chạy chính những lệnh này.