Skip to main content

redislock

Async библиотека для distributed locks и concurrency control через Redis.

Возможности

  • Distributed Locks: Блокировки через Redis для координации между процессами/серверами
  • Concurrency Limiting: Ограничение количества одновременных операций
  • Registry Pattern: Удобное управление через register() и get()
  • Async/Await: Полная поддержка asyncio
  • Context Managers: Автоматическое освобождение ресурсов

Установка

poetry add redislock --path /Users/aleks/Libraryies/redislock

Использование

Инициализация

import red_mng
from redislock import register, get

# Регистрация
redis = red_mng.get("default")
register("default", redis)

# Получение
locks = get("default")

Distributed Locks

# Защита критической секции
async with locks.acquire("orderbook:BTCUSDT:binance"):
    # Только один процесс выполнит этот код
    await update_orderbook()

# С кастомными таймаутами
async with locks.acquire("resource", timeout=10, blocking_timeout=20):
    await critical_operation()

Concurrency Limiting

# Ограничение параллельных API запросов
async with locks.limiter("api_calls", limit=50):
    await make_api_call()

# Ограничение обновлений orderbook
async with locks.limiter("orderbook_updates", limit=100):
    await update_orderbook()

Интеграция с проектом

from redislock import get
from config_fastapi import Config
import red_mng as redis_manager

class BaseRedisControl:
    def __init__(self):
        config = Config(section="redis")
        self.redis = redis_manager.get(config.get("alias"))
        self.locks = get(config.get("alias"))

Архитектура

  • DistributedLock: Использует redis.asyncio.lock.Lock
  • ConcurrencyLimiter: Использует asyncio.Semaphore
  • LockManager: Unified interface для обоих
  • Registry pattern: Singleton per alias

Преимущества

✅ Работает в распределенной среде (несколько серверов) ✅ Автоматическое освобождение блокировок ✅ Настраиваемые таймауты ✅ Логирование через logging ✅ Type hints ✅ Минимальные зависимости

Metadata

Release files for redis-distlock 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redis-distlock 1.0.1
File Size Uploaded
redis_distlock-1.0.1.tar.gz 4.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for redis-distlock 1.0.1
File Interpreter ABI Platform
redis_distlock-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.9 kB

Release files / redis_distlock-1.0.1.tar.gz

Download URL redis_distlock-1.0.1.tar.gz
Size 4.9 kB
Tags Source
SHA-256 checksum
How to use checksums
08a48af6b4e1267a7fabcadb48a535a77dac926dec2b4ba3ff82e1fc59244c20
BLAKE2b-256 checksum
How to use checksums
5e5700b044c801189fc476e833dcf92b6c9c3effbb2227a96f7f61897c26b6aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.12 Darwin/25.4.0

Release files / redis_distlock-1.0.1-py3-none-any.whl

Download URL redis_distlock-1.0.1-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b90631e380dc2c8ec74f87713f7c148748cc4c296eb49624be6b0a28dbfee20d
BLAKE2b-256 checksum
How to use checksums
4498c8de4e52a36c1ad7d5673afcdec1ef940be1af39fb26df821534aa70445b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.13.12 Darwin/25.4.0

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page