header(“content-type:text/html;charset=utf-8”);
$redis = new redis();
$result = $redis->connect('127.0.0.1 ', 6379);
$mywatchkey = $redis->get(“”);
$rob_total = 10;
//搶購數量
if($mywatchkey<$rob_total) {
$redis->watch(“mywatchkey”);
$redis->multi();
//設定延遲,方便測試效果。
sleep(5);
//插入搶購資料
$redis->hSet(“mywatchlist“,”user_id_”.mt_rand(1, 9999),time());
$ redis->set(“mywatchkey”,$mywatchkey 1);
$rob_result = $redis->exec();
if($rob_result) {
$mywatchlist = $redis-> hGetAll(“mywatchlist“);
echo “搶購成功!”;
echo “剩餘數量:”.($rob_total-$mywatchkey-1).””;
echo “用戶列表:”;
var_dump($mywatchlist);
} else {
echo 「手氣不好,再搶購!」;
exit;
}
}
以上是怎麼用php+redis實現樂觀鎖的詳細內容。更多資訊請關注PHP中文網其他相關文章!