之前我們分享了操作關系型數據庫,具體文章,
這次我們分享的是非關系型數據庫--Redis。
首先,我們安裝對應的依賴
pip intsall aioredis==1.3.1
接下來,我們去導入創建對應的連接。
from aioredis import create_redis_pool, Redis from fastapi import FastAPI app = FastAPI() async def get_redis_pool() -> Redis: redis = await create_redis_pool(f"redis://:@127.0.0.1:6379/0?encoding=utf-8") return redis @app.on_event("startup") async def startup_event(): app.state.redis = await get_redis_pool() @app.on_event("shutdown") async def shutdown_event(): app.state.redis.close() await app.state.redis.wait_closed()
這里我們也利用了上次分享的事件,FastAPI 學習之路(五十三)startup 和 shutdown。接下來,我們去創建一個api去操作對應的一個api,進行調試。
@app.get("/test", summary="測試redis") async def test_redis(request: Request, num: int=Query(123, title="參數num")): # 等待redis寫入 await異步變同步 # 如果不關心結果可以不用await,但是這里下一步要取值, # 必須得先等存完值 后再取值 await request.app.state.redis.set("test", num) # 等待 redis讀取 v = await request.app.state.redis.get("test") print(v, type(v)) return {"msg": v}
我們可以用postman請求下。
我們看下。redis是否存儲
我們可以看到redis存儲了我們的數據,我們的接口也正常返回了。這只是一個簡單的demo。后續我們可以存儲緩存,也可以來存儲我們的token。
文章首發在公眾號,歡迎關注。