redis事务机制实现秒杀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$client = new \Predis\Client();
// 监视键
$client->watch('sale_goods_1');
// 获取键
$res = $client->get('sale_goods_1');
$count = 3;

if ($res >= $count) {
dump($res);
exit('结束');
} else {
// 开始事务
$client->multi();
// 自增销量
$client->incr('sale_goods_1');

// 发送更新销量到队列


// 提交事务
$client->exec();
return '成功';
}