php 使用redis实现秒杀场景
<?php //php秒杀 redis并发处理 function miaoshao(){ $redis = new Redis;//diy redis操作类 //连接 $redis->connect('127.0.0.1', 6379,30); //设置密码 $redis->auth('junyi'); //获取库存出售的数量,默认为空 $kuchun = $redis -> get('kucun'); $total = 100; if ($kuchun < $total){ //有库存 $redis -> watch('kucun'); //开启事务 $redis->multi(); $redis->set("kucun",$kuchun+1); //执行事务 $result = $redis->exec(); if($result){ //剩余数量 $number = $total - ($kuchun +1); //$openid 用户id $openid = $number; $redis-> hset("list","user_".$openid,$kuchun); //获取抢购成功的用户 $data = $redis-> hgetall('list'); var_dump($data); var_dump($number); }else{ var_dump('手气很差哦,再试一下!'); } }else{ var_dump('已经被抢光了'); } }
原文:http://www.liusongs.com/archives/419