为了账号安全,请及时绑定邮箱和手机立即绑定

PHP消息队列实现及应用

Wicon PHP开发工程师
难度中级
时长 1小时14分
学习人数
综合评分9.73
65人评价 查看评价
9.8 内容实用
9.8 简洁易懂
9.6 逻辑清晰
视频里的代码只能实现削峰,但是没有实现锁,这样判断在高并发的情况下 ,肯定会出现超卖的情况,因为如果同时有100个进程执行了$resdis->lLen($resdis_name)<10,都是返回true的。

这里判断长度改成 && 查询数据库以存储数量 <10 会不会好点
非常感谢老师的分享 一直都想要触及到的知识 这次终于遇到了一个真正好的入门宝典

已采纳回答 / 会长001
一般有三种可能第一种是你的内存太小,可以加内存第二种是你的某些文件属性不改是只读而设置成了只读,把所有文件属性的只读去掉就行了(可以先整个文件夹所有文件设成只读,再全部去掉只读属性比较快)再不然就是软硬件有冲突了
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;
谢谢老师!
福音会大法
谢谢老师,讲的不错。
我建议这种课程应该加一个赞赏功能,多少随意,直接到老师账户~
这个不错哦,get新技能了,谢谢老师
你好老师,老师你好!

已采纳回答 / 慕神4459725
看你是什么linux了,如果是在虚拟机下,虚拟机本身就有文件夹共享功能,很方便.如果是其他的可以在linux中安装samba,设置好权限后就可以像windows系统一样进行文件共享了.
db类代码,看的惨不忍睹。。随便扫一眼。。看的是。。。
秒杀前,先向 list(goods:queue) push 10个数,这个数没有任何意义,仅仅代表一个商品

$goods = $redis->lpop('goods:queue');
if(!$goods){
exit('抢光了');
}

//后面的就是抢购成功的业务逻辑

最新回答 / 慕粉4131107
你可以将秒杀入队和返回成功,放到redis的事务里

已采纳回答 / qq_FEI_9
把队列名称写成动态或者你复制这几个文件改下队列名称
课程须知
1.掌握PHP基础知识 2.使用过Redis技术做缓存 3.有简单的Linux命令基础,如cd、sudo、apt、Vim
老师告诉你能学到什么?
1.队列是个什么东西,他能干什么 2.队列的应用场景有哪些 3.如何使用队列对业务进行解耦 4.如何使用Redis队列来消除高压力 5.专业的队列系统RabbitMQ如何来使用 课程所需库文件:http://pan.baidu.com/s/1bQg038

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消