午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > Thinkphp5+Redis實現(xiàn)商品秒殺代碼實例講解

Thinkphp5+Redis實現(xiàn)商品秒殺代碼實例講解

熱門標簽:黔江400電話如何辦理 OMG地圖標注app 地圖標注視頻廣告入駐 中原區(qū)電話機器人價格 招標自動語音外呼系統(tǒng) ai電話機器人加盟代理 gps 地圖標注軟件 400電話鄭州申請 電銷機器人便宜的有嗎

環(huán)境:wamp,redis

要求:安裝WAMP,Redis,以及為PHP安裝Redis擴展

秒殺功能大致思路:獲取緩存列表的長度,如果長度(llen)等于0,就停止秒殺,即秒殺失敗,如果長度大于0,則繼續(xù)運行,先從緩存中移除一個元素(lpop),再進行數據庫操作(添加訂單表,商品庫存數量減一),如果再進一個人秒殺,就再走一遍流程,循環(huán)往復。

一、安裝Redis擴展

1.查看PHP版本信息

打開phpinfo.php,查看PHP版本,我的是PHP7.3.4,還有一個需要注意Architecture x64

2.下載擴展文件

https://pecl.php.net/package/redis

https://pecl.php.net/package/igbinary

根據自己環(huán)境,選擇合適的版本

3.解壓

解壓下載的壓縮包,并把php_redis.dll、php_redis.pdb和php_igbinary.dll、php_igbinary.pdb四個文件,移至自己PHP版本對應目錄下的ext文件夾下E:\phpstudy_pro\Extensions\php\php7.3.4nts\ext

4.修改php.ini

添加如下代碼:

extension=php_igbinary.dll
extension=php_redis.dll

如果有這兩句可以把前面的分號刪掉,沒有就自己添加上,要注意順序,php_igbinary.dll 要在php_redis.dll 前面

5.重啟Apache

重啟后,再運行phpinfo.php,查看是否安裝成功

二、數據結構

一共三張表,ab_goods商品表,ab_order訂單表,ab_log日志表

商品表

訂單表

日志表 記錄秒殺信息

三、代碼

?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\cache\driver\Redis;

class Miaosha extends Controller
{

 private $redis = null;
 private $cachekey = null; //緩存變量名
 private $basket = []; //私有數組,存放商品信息

 private $store = 50;

 /**
 * 購物車初始化,傳入用戶id
 */
 public function __construct()
 {
 parent::__construct();

 $this->redis = new \Redis(); // 實例化
 $this->redis->connect('127.0.0.1','6379');
 $this->redis->auth('zxf123456');

 }

 /**
 * 秒殺初始化
 */
 public function Ms_init()
 {
 // 刪除緩存列表
 $this->redis->del($this->cachekey);

 $len = $this->redis->llen($this->cachekey);
 $count = $this->store - $len;

 for ($i=0; $i  $count; $i++) { 

 // 向庫存列表推進50個,模擬50個商品庫存
 $this->redis->lpush($this->cachekey,1);
 }

 echo "庫存初始化完成:".$this->redis->llen($this->cachekey);
 }
 

 /**
 * 秒殺入口
 */
 public function index()
 {
 $id = 1; //商品編號
 
 if (empty($id)) {
 // 記錄失敗日志
 return $this->writeLog(0,'商品編號不存在'); 
 }

 // 計算庫存列表長度
 $count = $this->redis->llen($this->cachekey);

 // 先判斷庫存是否為0,為0秒殺失敗,不為0,則進行先移除一個元素,再進行數據庫操作
 if ($count == 0) { //庫存為0

 $this->writeLog(0,'庫存為0');
 echo "庫存為0";
 exit;

 }else{
 // 有庫存
 //先移除一個列表元素
 $this->redis->lpop($this->cachekey);

 $ordersn = $this->build_order_no(); //生成訂單
 $uid = rand(0,9999); //隨機生成用戶id
 $status = 1;
 // 再進行數據庫操作
 $data = Db::table('ab_goods')->field('count,amount')->where('id',$id)->find(); //查找商品

 if (!$data) {
 return $this->writeLog(0,'該商品不存在');
 }

 $insert_data = [
 'order_sn' => $ordersn,
 'user_id' => $uid,
 'goods_id' => $id,
 'price' => $data['amount'],
 'status' => $status,
 'addtime' => date('Y-m-d H:i:s')
 ];

 // 訂單入庫
 $result = Db::table('ab_order')->insert($insert_data);
 // 自動減少一個庫存
 $res = Db::table('ab_goods')->where('id',$id)->setDec('count');

 if ($res) {
 echo "第".$count."件秒殺成功";
 $this->writeLog(1,'秒殺成功');
 }else{
 echo "第".$count."件秒殺失敗";
 $this->writeLog(0,'秒殺失敗');
 }
 }
 }

 /**
 * 生成訂單號
 */
 public function build_order_no()
 {
 return date('ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
 }

 /**
 * 生成日志 1成功 0失敗
 */
 public function writeLog($status = 1,$msg)
 {
 $data['count'] = 1;
 $data['status'] = $status;
 $data['addtime'] = date('Y-m-d H:i:s');
 $data['msg'] = $msg;
 return Db::table('ab_log')->insertGetId($data);
 }

}

四、壓力測試

使用apache壓力測試工具 AB 測試,模擬多用戶秒殺商品,模擬60秒內發(fā)起3000個請求,并發(fā)600次,秒殺50個庫存商品

AB測試相關參數說明

  • -r 指定接收到錯誤信息時不退出程序
  • -t 等待響應的最大時間
  • -n 指定壓力測試總共的執(zhí)行次數
  • -c 用于指定壓力測試的并發(fā)數

1.初始化50個庫存,運行ms_init方法

2.測試   命令行:

E:\phpstudy_pro\Extensions\Apache2.4.39\bin>ab -r -t 60 -n 3000 -c 1000 http://gouwuche.zxf/index/miaosha/index  

  3.檢測數據庫數據

日志表狀態(tài)為1(秒殺成功)的數據有50人,訂單表里的訂單數也是50條,商品表里的商品數量變成了0(測試之前是50),商品秒殺成功完成!

如果不用redis而是直接用mysql的話,商品表訂單的數量count會變成負數,而秒殺成功的人數也多余50人,訂單表里的訂單數量也多余50條(新測),下面是直接用Mysql的例子;

public function sqlMs()
 {
 $id = 1; //商品編號

 $count = 50;
 $ordersn = $this->build_order_no(); //生成訂單
 $uid = rand(0,9999); //隨機生成用戶id
 $status = 1;
 // 再進行數據庫操作
 $data = Db::table('ab_goods')->field('count,amount')->where('id',$id)->find(); //查找商品

 // 查詢還剩多少庫存
 $rs = Db::table('ab_goods')->where('id',$id)->value('count');
 if ($rs = 0) {
 
 $this->writeLog(0,'庫存為0');
 }else{

 $insert_data = [
 'order_sn' => $ordersn,
 'user_id' => $uid,
 'goods_id' => $id,
 'price' => $data['amount'],
 'status' => $status,
 'addtime' => date('Y-m-d H:i:s')
 ];

 // 訂單入庫
 $result = Db::table('ab_order')->insert($insert_data);
 // 自動減少一個庫存
 $res = Db::table('ab_goods')->where('id',$id)->setDec('count');

 if ($res) {
 echo "第".$data['count']."件秒殺成功";
 $this->writeLog(1,'秒殺成功');
 }else{
 echo "第".$data['count']."件秒殺失敗";
 $this->writeLog(0,'秒殺失敗');
 }
 }
 }

到此這篇關于Thinkphp5+Redis實現(xiàn)商品秒殺的文章就介紹到這了,更多相關Thinkphp5+Redis實現(xiàn)商品秒殺內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解PHP解決守護進程Redis假死
  • thinkphp5redis緩存新增方法實例講解
  • PHP使用Redis隊列執(zhí)行定時任務實例講解
  • php基于redis的分布式鎖實例詳解
  • PHP操作Redis常用命令的實例詳解
  • php在linux環(huán)境中如何使用redis詳解
  • php操作redis命令及代碼實例大全
  • php之redis短線重連案例講解

標簽:北京 哈密 日照 阿里 那曲 池州 濟源 孝感

巨人網絡通訊聲明:本文標題《Thinkphp5+Redis實現(xiàn)商品秒殺代碼實例講解》,本文關鍵詞  Thinkphp5+Redis,實現(xiàn),商品,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Thinkphp5+Redis實現(xiàn)商品秒殺代碼實例講解》相關的同類信息!
  • 本頁收集關于Thinkphp5+Redis實現(xiàn)商品秒殺代碼實例講解的相關信息資訊供網民參考!
  • 推薦文章
    日韩久久久久久久久久久久| 91网上在线视频| 亚洲成av人影院| 深夜福利一区二区| 久久综合久久久| 99国产精品免费视频| 一级黄色片在线播放| 国产精品人妖ts系列视频| 国产手机视频精品| 欧美二区在线看| 91国模少妇一区二区三区| 巨乳诱惑日韩免费av| 精品magnet| 国产精品美女久久| 日韩av片免费观看| 亚洲毛片欧洲毛片国产一品色| 亚洲国产wwwccc36天堂| 98精品国产自产在线观看| 欧美深夜福利视频| 五月天综合激情| 欧美国产一区视频在线观看| 另类美女黄大片| 欧美激情视频免费看| 亚洲天堂视频网站| 国产精品丝袜黑色高跟| 久久精品视频99| 青青在线视频观看| 国产毛片毛片毛片毛片毛片| 亚洲国产精品久久艾草纯爱| 国产精品一区二区久久久| 中文字幕视频观看| 久久99在线观看| 精品亚洲一区二区三区| 日日噜噜夜夜狠狠久久丁香五月| 日韩黄色精品视频| 亚洲一区二区视频在线| 国产啪精品视频| 午夜激情影院在线观看| 另类小说一区二区三区| 永久免费看mv网站入口亚洲| 欧美一级在线看| 欧美视频xxx| 精品成人佐山爱一区二区| 老司机午夜网站| 国产一区二区三区中文字幕 | 国产亲近乱来精品视频| 51色欧美片视频在线观看| 亚洲国产一区二区三区在线播 | 国产精品久久久久久久久久久久久久久久 | 欧美黑人一级爽快片淫片高清| 欧美精品性生活| 可以免费看毛片的网站| 精品国产亚洲一区二区三区在线观看 | 色综合久久中文字幕| 国产在线精品日韩| 国产午夜精品无码| 亚洲黄色录像片| 国产在线一区二区三区欧美| www.国产成人| 欧美午夜电影在线播放| 国产精品无码乱伦| 人妻精品一区二区三区| 国产小视频91| 奇米精品一区二区三区| 麻豆精品久久精品色综合| 北条麻妃一区二区三区中文字幕| 国产视频一区二区视频| 成人午夜在线免费| 欧美影院在线播放| 欧美激情国产精品免费| 欧美色图在线观看| 欧美视频在线观看网站| 国产盗摄精品一区二区三区在线| 日本老师69xxx| 欧美精品入口蜜桃| 欧美日韩激情一区二区三区| 日韩国产小视频| 美腿丝袜一区二区三区| 久久免费高清视频| 丁香花五月激情| 欧美日本一区二区在线观看| 国产资源第一页| 激情文学综合丁香| 国产成人综合精品| 日韩特黄一级片| 亚洲第一av网| 精品伦一区二区三区| 最新热久久免费视频| 亚洲精品国产精品久久| www日本高清| 欧美另类在线观看| 欧美一区免费观看| 欧美一区二区三区在线电影 | 日本国产在线播放| 不卡区在线中文字幕| 粉嫩av免费一区二区三区| 国产小视频一区| 日韩中文字幕免费| 日本黄色片免费观看| 在线视频一区二区三区| 久久久国内精品| 成人激情动漫在线观看| 亚洲最大的网站| 黄色www视频| 欧美一区三区三区高中清蜜桃| 国产一级免费视频| 日韩一级黄色av| 欧美黄色一区二区三区| 日韩精品免费在线| 免费看黄色的视频| 色哦色哦哦色天天综合| 亚洲三级视频网站| 一区二区三区精品视频在线| 131美女爱做视频| 国产精品久久久久婷婷二区次| 9l视频自拍9l视频自拍| 久久久影视传媒| 色乱码一区二区三在线看| 国产精品一区二区久久不卡 | 亚洲午夜久久久久中文字幕久| 欧美女人性生活视频| **性色生活片久久毛片| 久久国产亚洲精品无码| 亚洲免费观看高清完整版在线 | 精品一区二区三区毛片| a亚洲天堂av| 咪咪色在线视频| 国产欧美日韩亚州综合| 国产精品裸体瑜伽视频| 成人午夜av在线| 91免费版看片| 亚洲精品免费在线| 妞干网在线免费视频| 亚洲国产成人av好男人在线观看| www.这里只有精品| 欧美日韩综合在线| 国产一二三四五区| 亚洲国产欧美一区二区三区同亚洲 | 丁香天五香天堂综合| 欧美三级午夜理伦三级老人| 中文字幕一区免费在线观看| 成人午夜视频在线观看免费| 亚洲国产精品影院| 亚洲av成人片无码| 日韩经典中文字幕| 91福利在线观看视频| 日韩av第一页| 美女一区二区视频| 鲁片一区二区三区| 国产精品久久久久毛片软件| 久久久久久久久久久久久久久国产| 日韩欧美中文字幕在线观看| 爱爱的免费视频| 色偷偷亚洲男人天堂| 国产chinasex对白videos麻豆| 国产精品v欧美精品∨日韩| 国产99一区视频免费| 无码人妻精品一区二区蜜桃百度| 亚洲va韩国va欧美va精品| 国产精品1000部啪视频| 日韩色av导航| 蜜桃av一区| 精品国产一区二区三区在线| 精品国产福利在线| 日韩av片在线| 人妖精品videosex性欧美| 狠狠色伊人亚洲综合成人| 黄色一级视频片| 亚洲国产精品久久久久久| 国产片在线播放| 日韩精品久久久毛片一区二区| 亚洲444eee在线观看| jizz中文字幕| 国产成人综合精品在线| 91亚洲国产成人精品一区二三 | 国产三级精品三级观看| 日韩av免费在线播放| 久久综合九色综合久久久精品综合| 老熟妇仑乱视频一区二区| 日韩午夜中文字幕| av一级黄色片| 久久久国内精品| 欧美一区二区视频免费观看| 国产原创中文av| 免费成人进口网站| 日韩欧美高清dvd碟片| 国产成人麻豆免费观看| 人偷久久久久久久偷女厕| 欧美性猛交xxxx免费看| 国内偷拍精品视频| 国产日韩欧美视频| 亚洲一区在线观看网站| 伊人365影院| 青娱乐一区二区| 欧美日韩激情在线| 国产精品久久免费| 亚洲一区二区高清视频| 日韩欧美国产精品一区| 国产精品国产三级国产普通话对白 | 久久99久久久久久久噜噜| av在线免费不卡| 一级二级黄色片| 国内精品久久国产| 精品动漫一区二区三区| а中文在线天堂| 久久99久久99精品| 国产亚洲欧美aaaa| 成人午夜又粗又硬又大| 一女三黑人理论片在线| 91免费的视频在线播放| 91黄色免费版| 99国产精品久久久久久久成人| 一女被多男玩喷潮视频| 欧美精品在线免费| 国产精品午夜电影| 在线看成人av| 人人妻人人澡人人爽欧美一区| 伊人久久综合97精品| 福利电影一区二区三区| 亚洲不卡的av| 亚洲精品在线免费看| 亚洲欧美日韩图片| 国产69精品久久777的优势| 久久精品日韩无码| 亚洲欧美国产不卡| 一区二区av在线| 成人av资源网站| 蜜桃av.com| 国产精品劲爆视频| 99热国产精品| 久久免费在线观看视频| 久久精品在线免费视频| 久久免费精品日本久久中文字幕| 精品久久久久久久久久ntr影视| 国产77777| 法国空姐电影在线观看| 五月天av影院| 成人欧美一区二区三区在线观看 | 女同久久另类69精品国产| 超碰97免费观看| 久久欧美在线电影| 在线观看亚洲精品视频| 国产精品亚洲成人| 日韩精品――中文字幕| 亚洲高清在线免费观看| 色一情一乱一伦一区二区三欧美| 亚洲最大在线视频| 精品久久久久久久久久久久| 国产伦精品一区二区三区视频青涩| 免费在线观看日韩| 欧在线一二三四区| 91免费观看网站| 亚洲精品网站在线播放gif| 中文字幕在线免费不卡| 亚洲精品视频专区| 少妇高潮惨叫久久久久| 少妇人妻在线视频| 亚洲va电影大全| 亚洲美女自拍视频| 伊人色综合久久天天| 欧美a级一区二区| 久久久久久久久精| 污污的网站18| 欧美精品中文字幕一区二区| 欧美国产日韩一区二区在线观看 | 国产69久久精品成人| 亚洲成人免费网站| 午夜电影一区二区三区| 久久久综合九色合综国产精品| 粉嫩av一区二区夜夜嗨| 久久久美女视频| 久久久999免费视频| 成人免费高清完整版在线观看| 日韩精品中文字幕久久臀| 欧美日韩国产专区| 国产成人免费视频网站| 亚洲成人精品女人久久久| aa片在线观看视频在线播放| 成人在线免费观看av| 91手机视频在线观看| 伦伦影院午夜日韩欧美限制| 制服.丝袜.亚洲.中文.综合| 亚洲少妇最新在线视频| 国产成人午夜99999| 欧洲av在线播放| 色老头在线视频| 杨钰莹一级淫片aaaaaa播放| 五月天丁香社区| 成人免费观看毛片| 97视频中文字幕| 4438全国成人免费| 亚洲天堂视频在线观看| 日韩一区二区在线观看视频播放| 亚洲国产精品ⅴa在线观看| 麻豆专区一区二区三区四区五区| www.好吊色| 久久久久成人网站| 日本中文字幕精品—区二区| 欧美在线一二三区| 91丨九色丨国产| 91成人免费视频| 91视频免费网站| 国产日韩在线一区| 国产精品免费视频久久久| 欧美老少做受xxxx高潮| 中文字幕亚洲综合久久| 亚洲国产精品免费| 欧美一区二区视频免费观看| 色婷婷综合久久久久中文一区二区| 亚洲美女一区二区三区| 亚洲视频一区在线观看| 99re这里只有精品首页| 国产在线播精品第三| 日韩中文字幕1| 天堂av一区二区三区| 亚洲黄色在线观看视频| 99热这里只有精品3| 国产精品热久久| 91精东传媒理伦片在线观看| 亚洲色成人www永久网站| 日本免费在线播放| 婷婷色中文字幕| 欧美日韩免费一区二区| 午夜免费激情视频| 精品爆乳一区二区三区无码av| 久久久久99精品成人片我成大片 | 丁香婷婷综合网| 99热99精品| 国产精品看片你懂得| 亚洲视频免费看| 亚洲国产欧美日韩另类综合 | 成年人视频软件| 日韩亚洲欧美中文字幕| 九九久久免费视频| 在线观看免费国产视频| 五月天婷婷久久| 一级黄色免费片| 少妇精品视频一区二区| 天堂精品中文字幕在线| 精品亚洲欧美一区| 北条麻妃国产九九精品视频| 久久亚洲综合色| 久久久久久亚洲综合影院红桃| 欧美激情在线一区二区| 一区二区三区在线视频观看58| 亚洲一区在线观看免费| 婷婷成人激情在线网| 日本韩国一区二区三区视频| 欧美一区二区黄| 亚洲欧美视频在线| 久久伊人精品一区二区三区| 日韩美女免费观看| 99九九视频| 一区二区三区视频| 久久久免费视频网站| yjizz视频| 久视频在线观看| 中文字幕欧美人妻精品| 天堂中文字幕av| av色综合久久天堂av综合| 中文字幕亚洲不卡| 91精品国产综合久久香蕉的特点| 亚洲国产精品成人av| 久久九九有精品国产23| 国产精品免费久久久| 欧美日韩在线观看一区| 18禁裸男晨勃露j毛免费观看| 午夜激情视频网| 欧美肥妇bbwbbw| 97成人在线观看| 久久99精品国产| 国产精品三级av在线播放| 一本到三区不卡视频| 亚洲欧美三级伦理| 日本成人免费在线| 国产欧美日韩综合精品二区| www国产精品内射老熟女| 国产伦精品一区二区三区精品| 一级一片免费看| 狠狠狠色丁香婷婷综合久久五月| 国产欧美日韩综合| 91精品国产全国免费观看| 欧美日本高清一区| 麻豆av一区二区| 亚洲人视频在线| 日韩黄色三级视频| 日韩成人伦理电影在线观看| 亚洲高清久久久| 日韩精品一二三四区| 国产精品极品美女在线观看免费| 色吧亚洲视频| 污网站免费观看| 国产乱码一区二区| 久久久久久黄色| 日韩一级免费观看| 茄子视频成人在线| 国产精品免费入口| 影音先锋制服丝袜| 五月激情婷婷网| 亚洲精品v日韩精品| 日韩久久精品成人| 国产欧美日韩免费| 岛国大片在线播放| 国产免费一区二区三区四区| 日韩激情一区二区| 亚洲一区二区不卡免费| 影音先锋日韩有码| 5g影院天天爽成人免费下载| 色天使在线观看| 夜夜爽妓女8888视频免费观看|