您好,欢迎访问一九零五行业门户网

使用redis秒杀出现产品超发现象求解?

最近在做一个秒杀活动,处于性能和响应速度的考虑,使用了redis。写的时候就特别注意了杜绝超发现象,基于redis理论的cas(check and set)乐观锁,想着应该能够杜绝该问题,但是还是出现了,很疑惑求大神帮助,具体的代码大致如下:
connect('10.10.10.119', 6379); $mywatchkey = $redis->get(mywatchkey); $rob_total = 100; //抢购数量 if($mywatchkeywatch(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; } } ?>
其它类似信息

推荐信息