Download the PHP package kode/limiting without Composer
On this page you can find all versions of the php package kode/limiting. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download kode/limiting
More information about kode/limiting
Files in kode/limiting
Download kode/limiting
More information about kode/limiting
Files in kode/limiting
Please rate this library. Is it a good library?
Informations about the package limiting
kode/limiting
高性能 PHP 限流器,支持令牌桶、滑动窗口算法,可用于本地和分布式限流。
功能特性
- 令牌桶算法:支持突发流量,按固定速率补充令牌
- 滑动窗口算法:基于时间窗口的精确限流
- 本地限流:使用内存存储,适用于单进程
- 分布式限流:使用 Redis,支持单机/Sentinel/Cluster 模式
- 并发控制:支持任务、进程、Fiber 协程的本地和分布式限流
- 原子操作:Lua 脚本保证分布式环境下的原子性
- 高可用:支持 Redis Sentinel 和 Cluster 自动故障转移
- PHP 8.2+:使用 readonly、enum 等新特性优化性能
系统要求
- PHP >= 8.2
- 可选:Redis 扩展(用于分布式部署)
安装
统一入口(推荐)
使用 Limiter 类可以更简洁地创建各种限流器:
快速开始
本地限流(令牌桶)
滑动窗口限流
分布式限流(跨机器)
并发任务控制
架构设计
API 文档
StoreInterface
存储接口,所有存储实现必须实现此接口。
RateLimiterInterface
限流器接口。
Limiter(统一入口)
统一入口类,提供简洁的 API 创建限流器。
TokenBucket
令牌桶限流算法。
SlidingWindow
滑动窗口限流算法。
DistributedLimiter
分布式限流器(基于 Redis)。
分布式并发控制器
本地并发控制器
DTO 对象
LimiterConfig
限流器配置(不可变对象)。
LimiterResult
限流结果(不可变对象)。
枚举类型
单元测试
测试覆盖所有核心功能,共计 35 个测试用例。
测试用例列表
运行测试
自定义存储
实现 StoreInterface 接口即可:
Redis 配置
单机模式
Sentinel 模式
Cluster 模式
使用场景
API 限流
秒杀活动
并发控制
开发
目录结构
许可证
Apache License 2.0 - 参见 LICENSE 文件
All versions of limiting with dependencies
PHP Build Version
Package Version
Requires
php Version
>=8.2
The package kode/limiting contains the following files
Loading the files please wait ...