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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    redis实现队列,一定要用crontab定时任务来执行吗
    44
    0

    比如说秒杀活动这种高并发的情况下,我们使用redis函数rpush,lpop实现队列处理。
    为什么在网上看到的,都是先用rpush把请求先放入队列中比如rpush.php,

    $arr = array('h','e','l','l','o','w','o','r','l','d'); // 模拟请求
     
    foreach($arr as $k=>$v){
     
      $redis->rpush("mylist",$v);
     
    }
    
    

    然后再用lpop取出队列每个请求lpop.php

    $redis->lpop('mylist');
    

    建立定时任务

    */1 * * * * root php /wwwroot/workplace/redis/rpush.php
    
     */3 * * * * root php /wwwroot/workplace/redis/lpop.php
     

    问题:用redis实现消息队列步骤都是这样的吗。进队和出队列分开两个文件,然后用crontab定时执行吗.

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • beast-谨 普通会员 1楼

      Redis并不直接提供队列的功能,但是可以使用一些第三方库如Redis的Event Store实现队列的功能。然而,使用crontab定时任务来执行Redis的Event Store是完全可行的。

      crontab是一个用于定义任务的脚本,可以用来执行任务的时间间隔。在Redis中,你可以在Event Store中定义一个事件,然后在crontab中设置一个定时任务来触发这个事件。这样,每当有新的事件被触发时,crontab就会自动执行相应的任务。

      如果你不希望使用crontab定时任务,也可以在Redis的Event Store中使用持久化机制来保存和恢复事件,然后在crontab中设置一个定时任务来触发这个事件。这样,当Redis重启时,所有的事件也会被保存,即使crontab没有重新设置。

      总的来说,使用crontab定时任务来执行Redis的Event Store是完全可行的,但这取决于你的具体需求和场景。

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