dweik / laravel-redis-stream
Laravel redis stream
1.1.0
2024-08-28 02:11 UTC
Requires
- php: ^7.4|^8.0
- illuminate/redis: ^10.0.0|^11.0.0
README
此包用于通过根据定义的通道触发处理器类来管理 Redis 流消息监听器。在此包中,您可以给同一通道分配多个类。
安装
使用以下命令通过 composer 安装此包:
composer require dweik/laravel-redis-stream
Laravel
然后您需要通过执行以下命令发布配置文件
php artisan vendor:publish --tag=laravel-redis-stream-config
Lumen
您需要在 bootstrap/app.php
文件中添加以下行
$app->register(LaravelStream\Redis\StreamServiceProvider::class);
并确保已加载 Redis,通过添加以下行(如果已存在则无需添加)
$app->register(Illuminate\Redis\RedisServiceProvider::class);
注意 如果您需要有关如何在 Lumen 上设置 Redis 的更多信息,可以通过 点击此处 查看官方网站
然后您需要将流配置文件从 vendor/dweik/laravel-redis-stream/config/streaming.php
复制到 config/streaming.php
在 config/streaming.php
文件中,您需要在 redis 键下设置 Redis 连接。然后您需要定义通道的名称,如下例所示分配处理器类
- 注意:我们更倾向于使用 phpredis 驱动程序。
'channels' => [ 'channel-name' => [ App\Channels\SomeClassChannel::class ], ],
您还可以在 trim 键下为每个通道定义修剪值。例如:
'trim' => [ 'channel-name' => 1000, // it means keep 1000 messages at most ],
创建处理器类
使用 artisan
命令通过 make:channel-listener
功能创建一个新的 处理器类,然后您可以在 app/Channels
路径下找到它
php artisan make:channel-listener SomeClassChannel
运行通道监听器
要为所有通道运行 通道监听器,请使用以下命令
php artisan stream:run
要运行特定通道,您可以将通道名称传递给 --channel
选项,例如::_
php artisan stream:run --channel=channel-name
向 Redis 流发送消息
有一个外观类可以处理 Redis 上的 xADD
命令
use LaravelStream\Redis\Facades\Stream; class SomeClass { public function(){ /* . . some code . */ /** * * @var string $channel channel name * @var mixed $data the message data * @var integer $trim (default null) the channel messages size, * when using (null) value, this package will use * the defined value on the config file "config/streaming.php". * when using (zero) value that means stop trimming function */ $messageID = Stream::stream( $channel, $data, $trim); } }