成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

使用redis watch實(shí)現(xiàn)秒殺搶購,避免超賣

Galence / 1187人閱讀

摘要:涉及搶購秒殺抽獎?chuàng)屍钡然顒訒r(shí),為了避免超賣,那么庫存數(shù)量是有限的,但是如果同時(shí)下單人數(shù)超過了庫存數(shù)量,就會導(dǎo)致商品超賣問題。那么我們怎么來解決這個問題呢采用樂觀鎖,使用實(shí)現(xiàn)搶購數(shù)量搶購成功剩余數(shù)量用戶列表手氣不好,再搶購已賣光

涉及搶購、秒殺、抽獎、搶票等活動時(shí),為了避免超賣,那么庫存數(shù)量是有限的,但是如果同時(shí)下單人數(shù)超過了庫存數(shù)量,就會導(dǎo)致商品超賣問題。那么我們怎么來解決這個問題呢?

采用樂觀鎖,使用redis實(shí)現(xiàn)
connect("127.0.0.1", 7379);
$redis->watch("mywatchlist");
$len = $redis->hlen("mywatchlist");
$rob_total = 100; //搶購數(shù)量
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 "剩余數(shù)量:" . ($rob_total - $len - 1) . PHP_EOL;
        echo "用戶列表:" . PHP_EOL;
        print_r($mywatchlist);
        exit;
    } else {
        exit("手氣不好,再搶購!");
    }

} else {
    exit("已賣光");
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/22870.html

相關(guān)文章

  • Redis 實(shí)現(xiàn)秒殺

    摘要:秒殺接下來是關(guān)鍵的一步,使用的是的命令獲取商品,利用的是的原子性。好的方面是秒殺成功的數(shù)量是準(zhǔn)確的,沒有超賣。參考資料實(shí)現(xiàn)高并發(fā)下的搶購秒殺功能基于云原生的秒殺系統(tǒng)設(shè)計(jì)思路秒殺架構(gòu)設(shè)計(jì) 導(dǎo)語 秒殺想必大家都了解,在短時(shí)間內(nèi)請求訪問會激增,同時(shí)要保證不會超賣和數(shù)據(jù)的準(zhǔn)確,對于技術(shù)方面還是有些考驗(yàn)的??上У氖?,一直沒有機(jī)會在項(xiàng)目中實(shí)現(xiàn)。再看了一些資料后,打算實(shí)驗(yàn)下。以下代碼僅為測試所用,環(huán)...

    MycLambert 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.37 - 分布式緩存利器:Redis

    摘要:持久化到中反向代理的負(fù)載均衡基于的集群搭建如何實(shí)現(xiàn)從中訂閱消息轉(zhuǎn)發(fā)到客戶端的擴(kuò)展是阻塞式,使用訂閱發(fā)布模式時(shí),會導(dǎo)致整個進(jìn)程進(jìn)入阻塞。緩存是用于解決高并發(fā)場景下系統(tǒng)的性能及穩(wěn)定性問題的銀彈。 showImg(https://segmentfault.com/img/bVYE6k?w=900&h=385); Redis 是由意大利程序員 Salvatore Sanfilippo(昵稱:a...

    binaryTree 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<