微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FastAPI 学习之路五十五操作Redis

之前我们分享了操作关系型数据库,具体文章

    FastAPI 学习之路(三十二)创建数据库

    FastAPI 学习之路(三十三)操作数据库

     FastAPI 学习之路(三十四)数据库多表操作

      这次我们分享的是非关系型数据库--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。

文章首发在公众号,欢迎关注。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐