• Lumen开发:结合Redis实现消息队列(1)


    1、简介

    Lumen队列服务为各种不同的后台队列提供了统一的API。队列允许你推迟耗时任务(例如发送邮件)的执行,从而大幅提高web请求速度。

    1.1 配置

    .env文件的QUEUE_DRIVER选项决定应用使用的队列“驱动”。

    QUEUE_DRIVER可以选择"sync", "beanstalkd", "sqs", "iron", "redis" 五种驱动器。

    1. sync是本地调试用的同步驱动器

    2. beanstalkd 是一个专业队列服务驱动器:http://kr.github.io/beanstalkd/ 

    3. sqs和iron是国外第三方队列服务

    4. 最后一项redis给了我们一个使用redis的理由,这样我们顺便把缓存服务和session服务全部迁移到redis上了。

    0. 顺便说一句,session驱动器千万别用mysql,处理时间1S不是梦,哎,看谁呢,说的就是你,1S哥!

    1.2 队列驱动预备知识

    数据库

    为了使用database队列驱动,需要一张数据库表来存放任务,要生成创建该表的迁移,运行Artisan命令queue:table,迁移被创建好了之后,使用migrate命令运行迁移:

    php artisan queue:table
    php artisan migrate

    其它队列依赖

    下面是以上列出队列驱动需要安装的依赖:

    Amazon SQS: aws/aws-sdk-php ~3.0
    Beanstalkd: pda/pheanstalk ~3.0
    IronMQ: iron-io/iron_mq ~2.0
    Redis: predis/predis ~1.0 和 illuminate/redis

    其他包安装都还比较正常,不过illuminate/redis在require时就一直。。。

    后来发现是版本不兼容的问题,Java,C#的毒终于还是在php上重演了。。。

     一言不合,我直接update了,结果还是同一个错误。。。

    最后执行了composer require illuminate/redis v5.4.*,嘿嘿,就可以了,真是mmp了

    好了,接下来就是愉快的让lumen与redis一起搞事啦!!!心花怒放

    首先是bootstrap/app.php

    $app->register(IlluminateRedisRedisServiceProvider::class);
    
    $app->withFacades();
    
    $app->withEloquent();

    注册一下Redis的服务供应IlluminateRedisRedisServiceProvider::class

    然后是config/database.php

    'redis' => [
    
            'cluster' => env('REDIS_CLUSTER', false),
    
            'default' => [
                'host'     => env('REDIS_HOST', '127.0.0.1'),
                'port'     => env('REDIS_PORT', 6379),
                'database' => env('REDIS_DATABASE', 0),
                'password' => env('REDIS_PASSWORD', null),
            ],
    
        ],

    我这边是本地测试环境,所有默认不用改

    接下来测试一下

    app('redis')->set('lumen', 'Hello, Lumen.');
    return app('redis')->get("lumen");

    结果输出:Hello, Lumen.

    下一篇详细讲Redis实现消息队列

  • 相关阅读:
    维护IBM DB2数据库所应了解的底子内情知识6
    维护IBM DB2数据库所应了解的根本知识2
    教你疾速掌握DB2数据库中的相关呼吁1
    疾速把握IBM DB2数据库的常用操纵指令2
    维护IBM DB2数据库所应看法的根底常识1
    维护IBM DB2数据库所应了解的根蒂基本常识9
    维护IBM DB2数据库所应懂得的根基常识7
    维护IBM DB2数据库所应了解的根柢常识11
    疾速把握IBM DB2数据库的常用操纵指令3
    维护IBM DB2数据库所应领会的基本常识8
  • 原文地址:https://www.cnblogs.com/cxscode/p/7597210.html
Copyright © 2020-2023  润新知