当前位置:首页 > PHP教程 > php高级应用 > 列表

yii框架redis结合php实现秒杀效果(实例代码)

发布:smiling 来源: PHP粉丝网  添加日期:2018-09-13 17:15:52 浏览: 评论:0 

废话不多说了,直接给大家贴代码了,具体代码如下所示:

  1. <?php 
  2. namespace backend\controllers; 
  3. use Yii; 
  4. use yii\web\Controller; 
  5. /** 
  6. *  
  7. */ 
  8. class GoodsController extends Controller 
  9. { 
  10. public $enableCsrfValidation=false; 
  11. public function actionInfo() 
  12. { 
  13. $data=yii::$app->db->createCommand("select * from goods ")->queryAll(); 
  14. return $this->render('index',['data'=>$data]); 
  15. } 
  16. Public function actionXx() 
  17. { 
  18. $id=yii::$app->request->get('id'); 
  19. $data=yii::$app->db->createCommand("select * from goods where id='$id'")->queryOne(); 
  20. return $this->render('info',['data'=>$data]); 
  21. } 
  22. Public function actionAdd() 
  23. { 
  24. $a=yii::$app->redis; 
  25. if (Yii::$app->request->isPost) 
  26. { 
  27. $data=yii::$app->request->post(); 
  28. $res=yii::$app->db->createCommand()->insert('goods',$data)->execute(); 
  29. if($res) 
  30. { 
  31. for ($i=0; $i <$data['counts'] ; $i++) 
  32. {  
  33. $a->lpush('goods',1); 
  34. } 
  35. return $this->redirect(array('goods/info')); 
  36. } 
  37. else 
  38. { 
  39. echo "添加失败"; 
  40. } 
  41. } 
  42. else 
  43. { 
  44. return $this->render('add'); 
  45. } 
  46. } 
  47. public function actionOrder() 
  48. { 
  49. $redis=yii::$app->redis; 
  50. $count=$redis->lpop('goods'); 
  51. if(emptyempty($count)) 
  52. { 
  53. echo "库存不足";die; 
  54. } 
  55. $res=yii::$app->db->createCommand("update goods set counts=counts-1 where id=1 and counts>0")->execute(); 
  56. if($res) //phpfensi.com 
  57. { 
  58. echo "秒杀成功"; 
  59. } 
  60. else 
  61. { 
  62. echo "秒杀失败"; 
  63. } 
  64. } 
  65. } 
  66. ?> 

Tags: 框架 实例 效果

分享到: