使用redis watch實現秒殺搶購,避免超賣

2021-09-16 21:43:44 字數 449 閱讀 5744

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

<?php

header("content-type:text/html;charset=utf-8");

$redis = new redis();

$result = $redis->connect('127.0.0.1', 7379);

$redis->watch("mywatchlist");

$len = $redis->hlen("mywatchlist");

$rob_total = 100; //搶購數量

if ($len < $rob_total) else

} else

如何使用Redis Watch命令

使用redis管理資料,理解如何使用事務儲存鍵值對資料很重要。redis事務與rdmms事務有些類似,但也有差異。redis主要通過幾個命令有效管理事務,本文討論redis的watch命令以及如何使用。在閱讀之前你最好安裝好redis環境,熟悉redis常用命令。redis事務命令主要包括 watc...

php使用redis watch秒殺搶購

redis的watch multi exec 方法實現秒殺搶購。優點 使用了樂觀鎖沒有鎖的等待,比佇列方式減少了大量的記憶體消耗。watch 監視乙個或多個key,如果在事務執行之前這個 或這些 key被其他命令所改動,那麼事務將被打斷.redis new redis result redis co...

實現秒級作業的示例 使用WAITFOR sql

use tempdb if exists select from msdb.dbo.sysjobs where name 20秒一次的作業 exec msdb.dbo.sp delete job job name 20秒一次的作業 定義建立作業 declare jobid uniqueidentif...