摘要:涉及搶購秒殺抽獎搶票等活動時,為了避免超賣,那么庫存數量是有限的,但是如果同時下單人數超過了庫存數量,就會導致商品超賣問題。那么我們怎么來解決這個問題呢采用樂觀鎖,使用實現搶購數量搶購成功剩余數量用戶列表手氣不好,再搶購已賣光
采用樂觀鎖,使用redis實現涉及搶購、秒殺、抽獎、搶票等活動時,為了避免超賣,那么庫存數量是有限的,但是如果同時下單人數超過了庫存數量,就會導致商品超賣問題。那么我們怎么來解決這個問題呢?
connect("127.0.0.1", 7379); $redis->watch("mywatchlist"); $len = $redis->hlen("mywatchlist"); $rob_total = 100; //搶購數量 if ($len < $rob_total) { $redis->multi(); $redis->hSet("mywatchlist", "user_id_" . mt_rand(1, 999999), time()); $rob_result = $redis->exec(); file_put_contents("log.txt", $len . PHP_EOL, FILE_APPEND); if ($rob_result) { $mywatchlist = $redis->hGetAll("mywatchlist"); echo "搶購成功" . PHP_EOL; echo "剩余數量:" . ($rob_total - $len - 1) . PHP_EOL; echo "用戶列表:" . PHP_EOL; print_r($mywatchlist); exit; } else { exit("手氣不好,再搶購!"); } } else { exit("已賣光"); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22870.html
摘要:秒殺接下來是關鍵的一步,使用的是的命令獲取商品,利用的是的原子性。好的方面是秒殺成功的數量是準確的,沒有超賣。參考資料實現高并發下的搶購秒殺功能基于云原生的秒殺系統設計思路秒殺架構設計 導語 秒殺想必大家都了解,在短時間內請求訪問會激增,同時要保證不會超賣和數據的準確,對于技術方面還是有些考驗的。可惜的是,一直沒有機會在項目中實現。再看了一些資料后,打算實驗下。以下代碼僅為測試所用,環...
摘要:持久化到中反向代理的負載均衡基于的集群搭建如何實現從中訂閱消息轉發到客戶端的擴展是阻塞式,使用訂閱發布模式時,會導致整個進程進入阻塞。緩存是用于解決高并發場景下系統的性能及穩定性問題的銀彈。 showImg(https://segmentfault.com/img/bVYE6k?w=900&h=385); Redis 是由意大利程序員 Salvatore Sanfilippo(昵稱:a...
閱讀 2411·2021-11-16 11:44
閱讀 848·2021-09-10 11:16
閱讀 2224·2019-08-30 15:54
閱讀 1042·2019-08-30 15:53
閱讀 1894·2019-08-30 13:00
閱讀 615·2019-08-29 17:07
閱讀 3509·2019-08-29 16:39
閱讀 3135·2019-08-29 13:30