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

php阻塞式连接有没有性能的问题

php阻塞式连接有没有性能的问题

萧十郎 2019-04-23 15:18:27
我准备用redis的list做一个队列系统,基本思路是:1.把信息用LPUSH操作加到redis中某个list的头部2.写个cron定时执行php读取这个list。使用redis的RPOP操作从list尾部取走信息此外,redis有个BRPOP的操作,当list里没有未处理信息时,会把脚本阻塞住,有新的信息时才会继续执行。请问php怎么利用这个特性,要注意什么,另外这种长时间的连接对性能有没有什么影响?ps.这样的队列系统设计合理吗?
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

BRPOPLPUSHsourcedestinationtimeoutBRPOPLPUSH是RPOPLPUSH的阻塞版本,当给定列表source不为空时,BRPOPLPUSH的表现和RPOPLPUSH一样。当列表source为空时,BRPOPLPUSH命令将阻塞连接,直到等待超时,或有另一个客户端对source执行LPUSH或RPUSH命令为止。超时参数timeout接受一个以秒为单位的数字作为值。超时参数设为0表示阻塞时间可以无限期延长(blockindefinitely)。完全能够用LIST构建一个队列,用BRPOPLPUSH不会有超时问题
                            
查看完整回答
反对 回复 2019-04-23
  • 2 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信