FastAPI 如何获取 Redis

在开发 Web 应用程序时,我们经常需要使用数据库来存储和检索数据。Redis 是一个流行的内存数据库,它被广泛用于缓存和数据存储。本文将为你提供一种使用 FastAPI 获取 Redis 的解决方案。

步骤1: 安装依赖

在开始之前,我们需要确保已经安装了 Redis 和 FastAPI。你可以使用以下命令来安装它们:

pip install redis fastapi

步骤2: 连接到 Redis

首先,我们需要在 FastAPI 应用程序中连接到 Redis。可以在应用程序的入口文件中创建一个 Redis 连接对象。创建一个名为 redis_client.py 的文件,并添加以下代码:

import redis

redis_client = None

def get_redis_client():
    global redis_client
    if not redis_client:
        redis_client = redis.Redis(host="localhost", port=6379, db=0)
    return redis_client

这里我们使用了 Redis 的默认主机和端口,你可以根据实际情况进行修改。

步骤3: 使用 Redis 进行操作

现在我们已经建立了与 Redis 的连接,可以使用它来执行各种操作。以下是一些常见的 Redis 操作示例:

设置键值对

from fastapi import FastAPI
from redis_client import get_redis_client

app = FastAPI()

@app.post("/set")
async def set_key_value(key: str, value: str):
    redis_client = get_redis_client()
    redis_client.set(key, value)
    return {"message": "Key-Value pair set successfully!"}

在上面的示例中,我们使用 POST 请求设置键值对。我们从请求体中获取键和值,并使用 set() 方法将其存储在 Redis 中。

获取键值对

@app.get("/get/{key}")
async def get_value(key: str):
    redis_client = get_redis_client()
    value = redis_client.get(key)
    if value is None:
        return {"message": "Key not found"}
    return {"value": value.decode()}

在上面的示例中,我们使用 GET 请求获取键值对。我们从路径参数中获取键,并使用 get() 方法从 Redis 中检索相应的值。

删除键值对

@app.delete("/delete/{key}")
async def delete_key(key: str):
    redis_client = get_redis_client()
    result = redis_client.delete(key)
    if result == 0:
        return {"message": "Key not found"}
    return {"message": "Key deleted successfully!"}

在上面的示例中,我们使用 DELETE 请求删除键值对。我们从路径参数中获取键,并使用 delete() 方法从 Redis 中删除相应的键值对。

这只是一些常见的 Redis 操作示例,你可以根据自己的需求扩展这些操作。

步骤4: 运行应用程序

最后,我们需要运行 FastAPI 应用程序以启动 Web 服务器。创建一个名为 main.py 的文件,并添加以下代码:

from fastapi import FastAPI
from redis_client import get_redis_client
from routers import redis_router

app = FastAPI()

app.include_router(redis_router)

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

在上面的代码中,我们使用 include_router() 方法将 Redis 相关的路由添加到应用程序中。

总结

通过上述步骤,我们成功地将 FastAPI 与 Redis 集成在一起。我们创建了一个单例的 Redis 连接对象,并使用它执行了一些常见的 Redis 操作。你可以根据自己的需求扩展这个解决方案,以满足更复杂的场景。Happy coding!