【熱聞】Python異步編程之web框架 異步vs同步 Redis并發對比
                發布時間:2023-06-16 09:34:14 文章來源:博客園
                在RedisIO方面,異步框架的性能是同步框架的4.3倍左右,和文件IO、數據


                【資料圖】

                測試基本信息

                主題:比較異步框架和同步框架在RedisIO操作的性能差異python版本:python 3.8數據庫:redis 5.0.7壓測工具:locustweb框架:同步:flask 異步:starlette請求并發量: 模擬10個用戶服務器配置: Intel(R) i7-12700F客戶端配置:Intel(R) i7-8700 3.20GHz

                flask 同步框架

                flask是python中輕量級web框架,特點是靈活、輕量級、擴展性高。同時flask是一個同步框架,操作Redis使用的是官方最推薦的包redis-py。redis-py早期版本只支持同步模式,高版本中已經支持異步模式。接口功能非常簡單,連接Redis從中讀取一個key,已經提前寫入redis。

                from flask import Flaskfrom redis import StrictRedisapp = Flask(__name__)@app.route("/user")def user_list():    redis_conn = StrictRedis(host="127.0.0.1", port=6379, decode_responses=True)    res = redis_conn.get("name")    return resif __name__ == "__main__":    app.run(port=8090, host="0.0.0.0")
                壓測結果

                并發量:342

                starlette 異步框架

                starlette 是當下火熱的異步框架fastapi依賴的唯二模塊之一,主要用于異步請求的處理。redis-py 既支持同步模式又支持異步模式,所以在starlette這個異步框架中就使用其異步模式。

                from starlette.applications import Starlettefrom starlette.responses import JSONResponsefrom starlette.routing import Routefrom uvicorn.main import runfrom redis.asyncio import StrictRedisasync def user(request):    redis_conn = StrictRedis(host="127.0.0.1", port=6379, decode_responses=True)    res = await redis_conn.get("name")    await redis_conn.close()    return JSONResponse(res)app = Starlette(debug=True, routes=[Route("/user", user),])if __name__ == "__main__":    run(app, host="0.0.0.0")
                壓測結果

                并發量:1361

                對比

                并發曲線圖對比:

                參數對比:

                框架Redis IO純框架無IO文件IO數據庫IO
                flask315463453225
                starlette1361153915381496
                性能比(異步/同步)4.33.33.46.6
                總結

                在Redis IO方面,異步框架的性能是同步框架的4.3倍左右,和文件IO、數據庫IO大體一致。橫向和數據庫IO比較略有下降,多次測試確實如此,猜測和redis-py模塊的異步模式有關。本篇是對比系列最后一篇。從異步密切相關的IO任務對比中可以切實看出異步編程的并發量比較高,后續篇幅中將講解python中異步編程的原理和使用。

                標簽:

                資訊播報

                樂活HOT

                娛樂LOVE

                精彩推送

                国产AV无码专区亚洲AV麻豆丫| 亚洲综合av一区二区三区不卡 | 国产av无码专区亚洲国产精品| 亚洲码欧美码一区二区三区| 最新国产成人亚洲精品影院| 亚洲精品视频观看| 久久精品视频亚洲| 久久夜色精品国产亚洲AV动态图| 亚洲VA成无码人在线观看天堂| 亚洲国产成人高清在线观看| 好看的电影网站亚洲一区| 国产AV无码专区亚洲AV男同| 亚洲av无码专区在线播放| 久久亚洲成a人片| 亚洲午夜精品一区二区| 91大神亚洲影视在线| 亚洲精品在线播放| 亚洲国产精品美女| 亚洲国产最大av| 亚洲日韩国产一区二区三区在线 | 精品久久亚洲中文无码| 亚洲首页国产精品丝袜| 亚洲人成网站免费播放| 亚洲日韩在线中文字幕综合 | 亚洲国产精品久久久久| 亚洲视频中文字幕| 亚洲精品午夜在线观看| 亚洲一区二区三区深夜天堂 | 亚洲看片无码在线视频| 亚洲国产成人综合精品| 高清在线亚洲精品国产二区| 亚洲中文字幕伊人久久无码| 亚洲乱码中文字幕综合| 亚洲精品高清视频| 亚洲一区二区三区免费在线观看 | 亚洲精品无码专区久久| 亚洲第一永久AV网站久久精品男人的天堂AV| 亚洲AV永久无码精品一区二区国产| 久久久久亚洲爆乳少妇无| 亚洲av午夜成人片精品网站| 亚洲欧洲视频在线观看|