zoukankan      html  css  js  c++  java
  • 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实现消息队列

  • 相关阅读:
    nessus 安装
    firefox SSL_ERROR_RX_RECORD_TOO_LONG burpsuit 报错 解决方案
    Vmware 15 新建虚拟机黑屏
    esp8266 IOT Demo 固件刷写记录
    elk + suricata 实验环境详细安装教程
    停更申明
    求二叉树的深度
    方差
    链表的基本排序
    正态分布及3Sigma原理
  • 原文地址:https://www.cnblogs.com/cxscode/p/7597210.html
Copyright © 2011-2022 走看看