Integrarea Redis Asincron (redis.asyncio) în FastAPI în FastAPI

database FastAPI 0.110+ / redis-py 5.0+ Q&A / Distribuie cod

Caching distribuit de mare viteză și limitare de rată folosind clientul oficial asincron redis.asyncio în FastAPI.

Sintaxă
redis = redis.asyncio.from_url("redis://localhost") / await redis.get(key)

Pentru a degreva baza de date relațională și a servi răspunsuri în sub 2 milisecunde, integrarea unui server Redis este soluția ideală. Pachetul oficial redis include modulul non-blocant redis.asyncio.

Conexiunea este inițializată în contextul lifespan al aplicației și injectată în rute prin Depends() pentru operațiuni ultra-rapide de tip await redis.setex(key, ttl, value) sau contoare atomice de rate limiting.

Exemplu: Caching cu expirare automată în Redis asincron
from fastapi import FastAPI, Depends
import redis.asyncio as aioredis
from typing import Annotated

app = FastAPI()

async def get_redis():
    client = aioredis.from_url("redis://localhost:63379", decode_responses=True)
    try:
        yield client
    finally:
        await client.close()

@app.get("/cached-price/{symbol}")
async def get_price(symbol: str, redis: Annotated[aioredis.Redis, Depends(get_redis)]):
    cache_key = f"stock:{symbol.upper()}"
    cached_val = await redis.get(cache_key)
    
    if cached_val:
        return {"symbol": symbol, "price": float(cached_val), "source": "cache_redis"}
    
    # Calculăm valoarea și o salvăm în Redis pentru 60 de secunde:
    real_price = 145.50
    await redis.setex(cache_key, 60, str(real_price))
    return {"symbol": symbol, "price": real_price, "source": "database"}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Integrarea Redis Asincron (redis.asyncio) în FastAPI

Ai o nelămurire despre utilizarea comenzii Integrarea Redis Asincron (redis.asyncio) în FastAPI sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.