使用Redis作为后端的异步函数速率限制器
项目描述
asyncio-redis-rate-limit
使用Redis作为后端的异步函数速率限制器。
功能
- 小巧简单
- 可以作为装饰器或上下文管理器使用
- 可用于客户端和服务器
- 与
asyncio
兼容 - 与任何数量的进程兼容
- 与
redis.asyncio.client.Redis
和aioredis
兼容 - 无竞争条件(希望如此!)
- 支持从
7.0
开始的redis
- 完全使用注解类型化,并使用mypy进行验证,PEP561兼容
安装
pip install asyncio-redis-rate-limit
提供额外功能
pip install asyncio-redis-rate-limit[redis]
pip install asyncio-redis-rate-limit[aioredis]
(对于python版本<3.11
)
示例
作为装饰器
>>> from asyncio_redis_rate_limit import rate_limit, RateSpec
>>> from redis.asyncio import Redis as AsyncRedis # pip install redis
>>> redis = AsyncRedis.from_url('redis://localhost:6379')
>>> @rate_limit(
... rate_spec=RateSpec(requests=1200, seconds=60),
... backend=redis,
... )
... async def request() -> ...:
... ... # Do something useful! Call this function as usual.
或作为上下文管理器
>>> from asyncio_redis_rate_limit import RateLimiter, RateSpec
>>> from redis.asyncio import Redis as AsyncRedis # pip install redis
>>> redis = AsyncRedis.from_url('redis://localhost:6379')
>>> async def request() -> ...:
... async with RateLimiter(
... unique_key='api-name.com',
... backend=redis,
... rate_spec=RateSpec(requests=5, seconds=1),
... ):
... ... # Do the request itself.
许可证
致谢
本项目使用 wemake-python-package
生成。当前模板版本为: 1d63652fbb33ebe2f6d932f511b7f529a4ce2d2a。查看自那时以来的更新内容:更新。
项目详情
关闭
asyncio_redis_rate_limit-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c79e4e334e7e47b0a4511f5965c9e8d56c823069ca622e7db18f863de920742 |
|
MD5 | 41eda4d14d1ed9cf47f0966dd51d8db8 |
|
BLAKE2b-256 | 7b837041da22675fde46beec16cd0f278dfca3566fae13ad844867fd0e298eb8 |
关闭
asyncio_redis_rate_limit-1.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 489a0f2efe739818f8f124b7ccc8b2efb681179a0ce8ead1aac508aedf6b03f2 |
|
MD5 | 2a5c86c16f9e4ba31db16f1208a0b4e2 |
|
BLAKE2b-256 | 2b464616e373618931876a32e38c2bca8ad154e57d99d3ce6f446fd45aa11267 |