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

PHP消息队列实现及应用

Wicon PHP开发工程师
难度中级
时长 1小时14分
学习人数
综合评分9.73
65人评价 查看评价
9.8 内容实用
9.8 简洁易懂
9.6 逻辑清晰

最赞回答 / 书旅
可以可以

最赞回答 / 慕姐936777
2个只是测试,如果瞬间有十万个请求(或者更多),存值那块会不会卡住。用redis先存起来(内存操作,速度很快),以后在慢慢存到数据库,

最新回答 / 浮尘www
https://blog.csdn.net/u011415782/article/details/77864102

最新回答 / 慕少4427295
队列里的数据时异步处理的,然后存进数据库,但是他访问那个连接的时候就相当于多个用户去秒杀了,输出的结果(成功或者结束)就实时的反应了是否秒杀成功。

最新回答 / qq_工作专用_1
在根目录运行 ./goods.sh回车,会提示“坏的解释器....”,然后输入:sed -i 's/\r$//' goods.sh回车,再继续运行shell脚本试试

最新回答 / 慕姐936777
redis是单线程,瞬时100个客户端请求过来,还是一条条加入队列,不会一次性进入100个

最赞回答 / 慕沐4218383
一半你请求三方接口,三方接口会做限制,不会让你太高频次的请求,也不会有并发的情况出现。如果出现的你说的情况是可以的,也要看你说的比较是多大,redis单个值的最大长度是512M,但是好像不要超过1M,否则效率不是很好,用memcached会好一点吧

最新回答 / 回首已是千年
按照课程的讲法的意思,在pop的时候设置了seelp(2) 两秒钟执行一次pop, 因为秒杀的时候速度非常的快,最多只是微妙数不同,其实在这pop的时间间隔内队列中早已插入了限定的元素个数了不会在插入元素了,也就是说这个时候前端对于秒杀已经判断好了。也就是说已经结束了。这个时候后面在对这十个元素进行入库操作。

最赞回答 / Master_Z
一般定时任务会设计成上一次任务执行完成,才会执行下一次,取决于时间间隔。

最赞回答 / qq_TheLeftEar_0
这个锁完全是自己yy的一个锁, 完全没有起到作用; 试想一下: 第一次执行     修改2条记录为  状态更新为2 。     然后搜索状态为 2 的数据  (2条);    处理数据 (此时处理流程在复杂状态下1分钟内只处理了1条);1分钟后, 第二次执行         修改2条记录为  状态更新为2 。     然后搜索状态为 2 的数据  (3条,2条是本次更新的记录,还有1条是上次没有处理完成的);    处理数据 (此时是不是有一条数据重复处理了???);

最赞回答 / 孤独小六
听着像,有青岛贵妇的口音

最赞回答 / MiraclesGG
因为开始已经在终端执行了一个读取redis缓存的文件,这个PHP文件里面写的是死循环,每2秒读取一次redis的队列。所以后面看到的数据是2秒一次添加进去的。
课程须知
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
提交
取消