视频里的代码只能实现削峰,但是没有实现锁,这样判断在高并发的情况下 ,肯定会出现超卖的情况,因为如果同时有100个进程执行了$resdis->lLen($resdis_name)<10,都是返回true的。
这里判断长度改成 && 查询数据库以存储数量 <10 会不会好点
这里判断长度改成 && 查询数据库以存储数量 <10 会不会好点
2017-08-10
已采纳回答 / 会长001
一般有三种可能第一种是你的内存太小,可以加内存第二种是你的某些文件属性不改是只读而设置成了只读,把所有文件属性的只读去掉就行了(可以先整个文件夹所有文件设成只读,再全部去掉只读属性比较快)再不然就是软硬件有冲突了
2017-08-09
CREATE TABLE `redis_queue` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT '0',
`time_stamp` varchar(24),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT '0',
`time_stamp` varchar(24),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
2017-08-08
已采纳回答 / 慕神4459725
看你是什么linux了,如果是在虚拟机下,虚拟机本身就有文件夹共享功能,很方便.如果是其他的可以在linux中安装samba,设置好权限后就可以像windows系统一样进行文件共享了.
2017-08-02
秒杀前,先向 list(goods:queue) push 10个数,这个数没有任何意义,仅仅代表一个商品
$goods = $redis->lpop('goods:queue');
if(!$goods){
exit('抢光了');
}
//后面的就是抢购成功的业务逻辑
$goods = $redis->lpop('goods:queue');
if(!$goods){
exit('抢光了');
}
//后面的就是抢购成功的业务逻辑
2017-08-01