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

PHP消息队列实现及应用

Wicon PHP开发工程师
难度中级
时长 1小时14分
学习人数
综合评分9.73
65人评价 查看评价
9.8 内容实用
9.8 简洁易懂
9.6 逻辑清晰
死循环程序一直pop队列的时候,llen判断列长度的话确实会发生变化造成超卖的现象,秒杀的时候可以新建一个key,incr进行计数,用此key的值来判断秒杀成功的人数
这个不算是高并发。
队列的话,说实话RabbitMQ和Kafka专业一点
期待后续的内容
学习了,讲得很细。不错
挺不错的哦
老师把源码分享下呗
讲得很好!十分感谢!
`created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '订单创建的时间',
`updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '处理完成的时间',
`status` tinyint(2) NOT NULL COMMENT '当前状态,0未处理,1已处理,2处理中',
PRIMARY key (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
拿走不谢
create table `order_queue`(
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id号',
`order_id` int(11) NOT NULL,
`mobile` varchar(20) NOT NULL COMMENT '用户手机号',
视频里的代码只能实现削峰,但是没有实现锁,这样判断在高并发的情况下 ,肯定会出现超卖的情况,因为如果同时有100个进程执行了$resdis->lLen($resdis_name)<10,都是返回true的。
建议使用decr方式,实现原子性的判断
感谢老师的分享
老师的教程只是提供一个思路,真实的场景如果另外一个程序一直在循环取redis队列中的数据,在高并发的情况下肯定会出现超卖情况,那么可以在用户秒杀结束redis队列中数据达到秒杀人数后,关闭前台页面中的秒杀按钮,点击购买不再执行购买程序提示秒杀结束,然后再redis列中取数据->插入mysql->下订单等等逻辑操作,个人理解不喜勿喷
太牛逼了老师!赞 一万个赞!!!!!
老师讲得不错,有用
课程须知
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
提交
取消