API Reference
Cache (синхронный)
__init__
Аргументы
redis_client- экзепляр синхронногоRedis.logger- опциональный логгер.
cache
def cache(self, ttl: int, prefix: str | None = None, use_pickle: bool = False, cache_none: bool = True) -> Callable
Аргументы
ttl- время жизни кэша в секундах.prefix- опциональный префикс для ключа.use_pickle- использоватьpickleдля сериализации.cache_none- кэшировать значениеNone
Опасно: Не используйте
pickleдля недоверенных данных. Это может выполнить произвольный код.Важно: Не используйте decode_responses=True в Redis-клиенте при включённом use_pickle=True.
invalidate_cache
Удаляет все ключи по префиксу.
Аргументы
prefix- префикс для удаления."*"- удаляет всё.timeout_seconds- время, отведенное на выполнение инвалидации.
Возвращает: удаленное количество ключей.
Cache (асинхронный)
Аналогичный, но методы асинхронные
from simple_redis_cache.asyncio import Cache
cache = Cache(redis)
@cache.cache(ttl=60, prefix="user")
async def get_user(user_id: int):
return {"id": user_id}
await cache.invalidate_cache(prefix="user")
CustomJSONEncoder
Кастомный JSON-энкодер для поддержки:
datetime-> ISO-строкаDecimal-> floatUUID-> строкаPydantic-модели->model_dump()