在 Laravel 中监控 Redis 命令

Laravel可以使用DB::listen()很方便的监听sql查询事件,但是却无法监控Redis。因此开发了一个小小的扩展来产生Redis命令执行事件,以方便监控运行程序运行中的Redis请求。

暂时只支持Predis

Listening Laravel pRedis Queries

安装

$ composer require "al-one/laravel-predis-listened" -vvv

目前这个包还没有一个稳定版本。请在composer.json中加入:

"minimum-stability": "dev",
"prefer-stable": true,

使用

注释掉框架自带的RedisServiceProvider服务,添加Alone\LaravelRedisExtendable\RedisServiceProvider::classAlone\LaravelPredisListened\ServiceProvider::class服务:

# config/app.php
<?php

return [

    'providers' => [
        // Illuminate\Redis\RedisServiceProvider::class,
        Alone\LaravelRedisExtendable\RedisServiceProvider::class,
        Alone\LaravelPredisListened\ServiceProvider::class,
    ],

];

修改Redis默认客户端驱动:

# config/database.php
<?php

return [
    'redis' => [
        'client' => 'predis_listened',
    ],
];

监听Redis命令执行事件:

use Alone\LaravelPredisListened\RedisEvent;

Facades\Event::listen(RedisEvent::class,function(RedisEvent $event)
{
    $event->command;   // Redis命令
    $event->arguments; // 参数
    $event->time;      // 耗时
});
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

觉得好用的话给个star :star: 支持下 :smile: 。

5年前 评论

什么情况

$ composer require "al-one/laravel-predis-listened"
    1/10:       https://packagist.laravel-china.org/p/provider-2014$d8a42af153995ef5bf75ea3d2c9c06753928e927ca572f3ca2f5360ac00651bd.json
    2/10:       https://packagist.laravel-china.org/p/provider-2019-01$229df204fcee176663d66dade6f3418439c9393ec0fe10cb6efe6038451dac22.json
    3/10:       https://packagist.laravel-china.org/p/provider-2018$3d0d47d945cefd6a986ef05ba9b551595152e1f16e9f4041ac904c8f06b2e642.json
    4/10:       https://packagist.laravel-china.org/p/provider-2018-07$0daad21de8d696c518644c67deb1b1c72ac1e82c73d3603ea0d4855e521b1bf4.json
    5/10:       https://packagist.laravel-china.org/p/provider-2018-04$7461fce9b76cefcebd73982f2380061525dbc6a7bc3e72c87b3bf4f629fa716e.json
    6/10:       https://packagist.laravel-china.org/p/provider-latest$5b9e7d35062245e4ba9f5671d91b653306c38c10953ce9d6616784e40756a2f9.json
    7/10:       https://packagist.laravel-china.org/p/provider-2016$819a3b2583cdea7ad0026c6f2e016fd1daee55334e589dd3f6cddea60d4e32c9.json
    8/10:       https://packagist.laravel-china.org/p/provider-2015$482b6cb54f34c0f08efc1c9d264645934ea04b262347a5f69c1a463a1c616f98.json
    9/10:       https://packagist.laravel-china.org/p/provider-2018-10$720fd2d2c8223f23af22220b93bb0235cd66a6e5c6f7c986d746b571999e5ecf.json
    10/10:      https://packagist.laravel-china.org/p/provider-2017$20bfad5cb9f53cb0c52ae0ac126fbd4dee49315b8a4b8d3164697b52904dfe6c.json
    Finished: success: 10, skipped: 0, failure: 0, total: 10

  [InvalidArgumentException]
  Could not find a version of package al-one/laravel-predis-listened matching
   your minimum-stability (stable). Require it with an explicit version const
  raint allowing its desired stability.

require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--update-with-all-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] [<packages>]...
5年前 评论

@lovecn
目前这个包还没有一个稳定版本。请在composer.json中加入:

"minimum-stability": "dev",
"prefer-stable": true,
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!