fastapi使用redis缓存数据
时间: 2023-06-29 13:02:44 浏览: 247
使用 Redis 缓存数据可以在某些场景下提高应用程序的性能和响应速度。以下是使用 FastAPI 和 Redis 进行缓存的基本步骤:
1. 安装 Redis 客户端库
```
pip install aioredis
```
2. 在应用程序中引入 Redis 客户端
```python
import aioredis
redis = await aioredis.create_redis_pool('redis://localhost')
```
3. 在需要缓存数据的地方将数据存储到 Redis 中
```python
await redis.set('key', 'value', expire=60) # 设置过期时间为60秒
```
4. 在需要获取数据的地方从 Redis 中获取数据
```python
value = await redis.get('key')
```
完整的示例代码如下:
```python
import aioredis
from fastapi import FastAPI
app = FastAPI()
redis = None
@app.on_event("startup")
async def startup_event():
global redis
redis = await aioredis.create_redis_pool('redis://localhost')
@app.on_event("shutdown")
async def shutdown_event():
redis.close()
await redis.wait_closed()
@app.get("/")
async def read_root():
value = await redis.get('key')
if value is None:
value = "Hello, Redis!"
await redis.set('key', value, expire=60)
return {"message": value}
```
在这个示例中,我们创建了一个名为 `redis` 的全局变量,使用 `aioredis` 库来创建 Redis 连接池,并在应用程序启动事件中初始化它。在应用程序关闭事件中我们关闭 Redis 连接池并等待连接关闭。
在根路径的 GET 请求中,我们首先从 Redis 中获取 `key` 对应的值。如果值不存在,则设置默认值并将其存储到 Redis 中。然后返回结果作为响应。
阅读全文