成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

FastAPI + Redis 實戰:一分鐘搞定高性能緩存方案

開發 數據庫
本文帶你快速實戰:FastAPI 如何優雅接入 Redis 實現緩存與存儲!

在開發高性能 Web 接口時,我們常常面臨這樣的問題:

  • 某些接口數據變化不頻繁,但訪問量巨大;
  • 某些操作(如排行榜、用戶信息)計算/查詢代價高昂;
  • 數據庫訪問壓力太大,接口響應慢。

這時候,就輪到我們的大殺器——Redis 上場了。

本文帶你快速實戰:FastAPI 如何優雅接入 Redis 實現緩存與存儲!


使用場景:接口緩存

我們以一個用戶信息接口為例:根據 user_id 返回用戶數據,但用戶信息不常變動,可以緩存。

安裝依賴

pip install fastapi uvicorn redis

初始化 Redis 客戶端

我們使用官方推薦的異步庫 redis-py 配合 asyncio 實現異步訪問。

# redis_client.py
import redis.asyncio as redis

redis_client = redis.Redis(
    host="localhost",
    port=6379,
    decode_responses=True  # 返回字符串而非字節
)

接口代碼示例

# main.py
from fastapi import FastAPI, HTTPException
from redis_client import redis_client
import json

app = FastAPI()


# 模擬數據庫
fake_user_db = {
    "1": {"id": 1, "name": "Alice"},
    "2": {"id": 2, "name": "Bob"},
}


@app.get("/user/{user_id}")
async def get_user(user_id: str):
    cache_key = f"user:{user_id}"

    # 嘗試從 Redis 獲取緩存
    cached_data = await redis_client.get(cache_key)
    if cached_data:
        return {"source": "redis", "data": json.loads(cached_data)}

    # 模擬從數據庫查詢
    user = fake_user_db.get(user_id)
    if not user:
        raise HTTPException(status_code=404, detail="用戶不存在")

    # 緩存結果,設置過期時間 60 秒
    await redis_client.set(cache_key, json.dumps(user), ex=60)

    return {"source": "db", "data": user}

說明:

  • Redis 作為緩存中間層:查詢接口先查 Redis,再查數據庫
  • 緩存數據使用 JSON 序列化存儲
  • 通過 ex=60 設置緩存過期時間為 60 秒

Redis 的應用價值

  • 降低數據庫訪問壓力
  • 提升接口響應速度(緩存命中幾乎毫秒級)
  • 靈活設置過期時間,控制數據新鮮度

衍生應用場景

  • 用戶會話 token 存儲
  • 短信驗證碼防刷
  • 排行榜數據緩存
  • 秒殺庫存預扣減
  • 實現消息隊列、分布式鎖等

小結

Redis 作為緩存方案在 FastAPI 項目中非常簡單易用,也非常高效。它能幫助你:

  • 提升接口性能;
  • 減輕數據庫壓力;
  • 實現更多靈活應用場景(例如登錄狀態、驗證碼、計數器等)。
責任編輯:趙寧寧 來源: Ssoul肥魚
相關推薦

2011-02-21 17:48:35

vsFTPd

2020-07-09 07:37:06

數據庫Redis工具

2018-03-27 09:28:33

緩存策略系統

2009-12-02 17:21:19

Cisco路由器配置

2017-03-30 19:28:26

HBase分布式數據

2017-02-21 13:00:27

LoadAverage負載Load

2018-07-31 16:10:51

Redo Undo數據庫數據

2018-06-26 05:23:19

線程安全函數代碼

2017-07-06 08:12:02

索引查詢SQL

2020-05-21 19:46:19

區塊鏈數字貨幣比特幣

2022-07-18 06:16:07

單點登錄系統

2018-12-12 22:51:24

Java包裝語言

2020-07-17 07:44:25

云計算邊緣計算IT

2016-09-12 17:28:45

云存儲應用軟件存儲設備

2015-11-12 10:32:40

GitHub控制系統分布式

2016-12-16 11:05:00

分布式互斥線程

2021-08-06 08:50:45

加密貨幣比特幣區塊鏈

2020-06-11 08:04:12

WDMDWDMMWDM

2013-11-15 07:24:50

4G LTE圖解

2023-03-27 09:40:01

GoWebAssembl集成
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区免费网站 | 在线中文字幕亚洲 | 亚洲天堂av在线 | 国产精品久久国产精品 | av在线免费看网址 | 国产精品国产a级 | 少妇午夜一级艳片欧美精品 | 久久亚洲国产 | 中文字幕av网址 | 久久久蜜臀国产一区二区 | 欧州一区二区 | 国产精品日韩高清伦字幕搜索 | 亚洲视频国产 | 天天操综合网站 | 三级视频网站 | 久久久久久免费毛片精品 | 亚洲欧美男人天堂 | 欧美日韩中文在线 | 二区亚洲 | 日本视频在线播放 | 国产在线精品一区二区三区 | 亚洲日韩中文字幕一区 | 亚洲成人免费 | 欧美极品在线观看 | 午夜久久久久久久久久一区二区 | 国产第一亚洲 | 婷婷色在线播放 | 亚洲一区二区三区国产 | 国产精品18久久久久久久 | 色资源av| 免费在线观看av网址 | 91精品国产色综合久久不卡蜜臀 | 怡红院免费的全部视频 | 亚洲电影第三页 | 午夜国产一区 | 中文字幕97 | 午夜在线视频 | 国产一级免费在线观看 | 久久精品国产亚洲一区二区三区 | 噜噜噜噜狠狠狠7777视频 | 成人免费视频网站在线观看 |