Laravel 队列使用-Redis作为驱动

准备工作

  1. 安装相对应的Redis包

    $ composer require  composer require predis/predis
    
  2. 修改配置文件.env,设置驱动

    QUEUE_DRIVER=redis
    
    REDIS_HOST=redis
    REDIS_PASSWORD=null
    REDIS_PORT=6379
    
  3. 修改config/queue.php文件中redis队列连详情

        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => 'default',
            'expire' => 60,
        ],
    
  4. 设置任务运行失败是的存储,失败的任务是存放到数据库表中的,在config/queue.php文件中配置相关的选项

    'failed' => [
        'database' => env('DB_CONNECTION', 'mysql'),
        'table' => 'failed_jobs',
    ],
    

任务存储结构

在Redis中,队列根据是否延迟执行分为两种结构

无延迟队列

无延迟队列在Redis中的存储结构为Lists,其key的命名规则以queues关键字后面添加队列名称

queues:happybird
延迟队列

延迟队列由于引入了延迟执行的时间概念,所以其存储的结构为Sort Sets, 其key的命名规则以queues关键字后面添加队列名称以及delayed关键字

queues:happybird:delayed

执行时间为Sort Setsscore