账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何正确使用redis队列处理php秒杀并发问题?
    64
    0

    百度之后,找到这样的思路:
    需要一个排队队列和抢购结果队列及库存队列。高并发情况,先将用户进入排队队列,用一个线程循环处理从排队队列取出一个用户,判断用户是否已在抢购结果队列,如果在,则已抢购,否则未抢购,库存减1,写数据库,将用户入结果队列。

    ‘先将用户进入排队队列,用一个线程循环处理从排队队列取出一个用户’
    到底如何:"用一个线程循环处理",我就不明白该如何下手了,啥时候开启这个"线程"?

    是不是每次用户进行抽奖,访问主程序就立即启动这个"线程"进行循环处理队列数据?

    还是说,用户点击抽奖按钮,触发的是执行入队操作,
    然后,在服务器会有一个以cli方式启动的独立进程,在长时间订阅监听队列的情况,如果有数据就执行用户队列的出列,然后再走下单操作?

    入队和出列,应该是两个不同的程序调用的吧?那如何在用户一访问进行抽奖,就能顺利实现入队和出列呢,如何在代码层面安排好这些调用动作的呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 突然疏远 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部