zoukankan      html  css  js  c++  java
  • 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。

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

  • 相关阅读:
    Web的攻击技术
    基于HTTP的功能追加协议
    确认访问用户身份的认证
    基本数据结构的模拟
    BFS与DFS
    KMP算法
    Trie字典树
    C++的结构体使用
    C++入门(命名空间)
    算法:C++入门
  • 原文地址:https://www.cnblogs.com/leiziv5/p/15416919.html
Copyright © 2011-2022 走看看