🚀 Redis Stream Queue

基于 Redis Stream 高性能轻量级消息队列

composer require tinywan/redis-stream

入门使用

📤 生产者示例

<?php

use Tinywan\RedisStream\RedisStreamQueue;

// 创建队列实例
$queue = RedisStreamQueue::getInstance(
    ['host' => '127.0.0.1', 'port' => 6379],
    ['stream_name' => 'tasks']
);

// 发送消息
$messageId = $queue->send(
    [
        'type' => 'user_registered',
        'user_id' => 12345,
        'email' => 'user@example.com']
);

echo "消息已发送: " . $messageId;

📥 消费者示例

<?php

use Tinywan\RedisStream\RedisStreamQueue;

// 创建队列实例
$queue = RedisStreamQueue::getInstance(
    ['host' => '127.0.0.1', 'port' => 6379],
    ['stream_name' => 'tasks']
);

// 消费消息
$message = $queue->consume(function($message) {
    echo "处理消息: " . $message['type'] . "\n";

    // 处理业务逻辑
    return true; // 确认消息
});

核心特性

高性能

基于 Redis 5.0+ Stream,支持 50,000+ QPS,延迟低至 2ms

延时任务队列

基于 Sorted Set,支持秒级到年级的任意时长延时

🔄

消息重放与审计

支持重新处理历史消息,提供只读模式审计功能

🏗️

单例模式

单例模式支持,避免重复创建实例,提升性能 100%+

🏊

连接池管理

Redis 连接池,自动连接复用和管理,降低连接开销

🧪

完整测试

69个测试,244个断言,100%通过率,保证代码质量

性能基准

🚀
50,000+
发送消息 QPS
基于 Redis 7.0,PHP 8.1
30,000+
消费消息 QPS
高并发场景下稳定表现
🎯
2ms
P95 延迟
极速响应,低延迟处理
💾
8MB
内存占用
消费者进程内存使用

框架集成

Laravel

完美集成 Laravel 队列系统,支持无缝替换

ThinkPHP

支持 ThinkPHP 6.0+,提供完整的服务封装

Webman

基于 Workerman,支持常驻内存高性能应用