Download the PHP package tinywan/redis-stream without Composer
On this page you can find all versions of the php package tinywan/redis-stream. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download tinywan/redis-stream
More information about tinywan/redis-stream
Files in tinywan/redis-stream
Download tinywan/redis-stream
More information about tinywan/redis-stream
Files in tinywan/redis-stream
Vendor tinywan
Package redis-stream
Short Description A lightweight queue based on Redis Stream
License
Package redis-stream
Short Description A lightweight queue based on Redis Stream
License
Please rate this library. Is it a good library?
Informations about the package redis-stream
🚀 Redis Stream Queue
🚀 基于 Redis Streams 的高性能轻量级 PHP 队列
✨ 特性
- ⚡ 高性能 - 基于 Redis 5.0+ Stream,支持高并发
- ⏰ 延时任务 - 基于 Sorted Set,支持秒级到年级延时
- 🔄 多生产者/消费者 - 支持多个生产者和消费者同时工作
- 💾 消息持久化 - 可靠的消息持久化存储
- ✅ ACK 确认机制 - 完善的消息确认机制
- 🔄 智能重试 - 可配置的重试次数和延迟策略
- 🔄 消息重放 - 支持重新处理历史消息
- 🔍 消息审计 - 提供只读模式审计所有消息
- 🧪 完整测试 - 69个测试,244个断言,100%通过率
- 📝 PSR-3 日志 - 标准 PSR-3 日志接口
- 🏗️ 单例模式 - 单例模式支持,避免重复创建实例
📋 环境要求
- PHP >= 7.4
- Redis >= 5.0
- Composer >= 2.0
- ext-redis 扩展
🚀 快速安装
🎯 快速开始
基础使用
创建队列实例
发送消息
消费消息
使用 Producer 和 Consumer
📊 架构流程
核心组件
| 层级 | 组件 | 功能描述 |
|---|---|---|
| 📤 生产者层 | Producer | 高级消息发送接口,支持单条和批量发送 |
| Delay Queue | 基于 Redis Sorted Set 的延时任务队列 | |
| 🏗️ 队列核心层 | RedisStreamQueue | 主要队列类,处理 Redis 连接和消息生命周期 |
| RedisConnectionPool | Redis 连接池管理器,自动连接复用 | |
| MonologFactory | Monolog 日志工厂,支持多种日志方式 | |
| 🗄️ 存储层 | Redis Stream | Redis 5.0+ 消息流,持久化消息存储 |
| Sorted Set | 延时任务队列,按时间戳排序 | |
| Consumer Group | 消费者组管理,支持并行消费 | |
| 📥 消费者层 | Consumer | 高级消息消费接口,具有重试逻辑和内存管理 |
| Message Handler | 自定义消息处理器接口 | |
| Special Features | 消息重放、审计、指定位置消费等高级功能 |
数据流向图
核心特性说明
🔄 消息流转过程
- 生产者发送消息到队列核心
- 延时队列处理需要延迟的消息
- 队列核心管理连接池和消息生命周期
- Redis存储提供持久化和消费组管理
- 消费者接收消息并调用处理器
- 特殊功能提供消息重放、审计等高级操作
⚡ 性能优化
- 单例模式避免重复创建实例
- 连接池管理减少连接开销
- Redis Stream提供高性能消息存储
- 支持多消费者并行处理
📖 主要功能
延时消息
支持秒级到年级的任意时长延时:
消息重放与审计
支持重新处理历史消息和只读审计:
指定位置消费
灵活的消费位置控制:
⚙️ 配置
Redis 配置
队列配置
🚀 生产部署
Supervisor 配置
Docker 部署
📊 性能基准
| 操作 | QPS | 延迟 (P95) |
|---|---|---|
| 发送消息 | 50,000+ | 2ms |
| 消费消息 | 30,000+ | 3ms |
| 延时消息调度 | 100,000+ | 1ms |
测试环境:Intel i7-10700K, Redis 7.0, PHP 8.1
🔧 高级功能
单例模式管理
延迟队列管理
队列监控
🛠️ 框架集成
Laravel 集成
ThinkPHP 集成
❓ 常见问题
Q: 如何处理消息丢失? A: 启用 Redis 的 AOF 或 RDB 持久化,使用消费者组确保消息被正确确认。
Q: 延时消息的精度如何? A: 默认检查间隔为 1 秒,支持秒级到年级的任意时长延时。
Q: 如何处理高并发场景? A: 使用单例模式,配置合适的连接池大小,使用多个消费者进程并行处理。
Q: 如何监控队列状态?
A: 使用 getStreamLength()、getPendingCount()、getDelayedQueueLength() 等方法监控状态。
🧪 运行示例
🤝 贡献
欢迎贡献代码!请遵循 PSR-12 编码规范,添加适当的测试,确保所有测试通过。
- Fork 仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
📄 开源协议
本项目采用 MIT 协议开源。详情请查看 LICENSE 文件。
Made with ❤️ by Tinywan
All versions of redis-stream with dependencies
PHP Build Version
Package Version
Requires
php Version
^7.4||^8.0
ext-redis Version *
ext-json Version *
monolog/monolog Version ^2.10
ext-redis Version *
ext-json Version *
monolog/monolog Version ^2.10
The package tinywan/redis-stream contains the following files
Loading the files please wait ...