java redis 商品秒杀_使用redis秒杀出现产品超发现象求解?
親測,用ab 壓測并發500 請求4000 無超賣!
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) {
$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 "搶購成功!
";
echo "剩余數量:" . ($rob_total - $len - 1) . "
";
echo "用戶列表:
";var_dump($mywatchlist);
} else {
echo "手氣不好,再搶購!";
exit;
}
} else {
echo "已賣光!";
exit;
}
?>
總結
以上是生活随笔為你收集整理的java redis 商品秒杀_使用redis秒杀出现产品超发现象求解?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吗 支持windows_M1能否原生支持
- 下一篇: mysql分组失效_请教MySql中使用