【熱聞】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

                精彩推送

                亚洲国产精品无码久久久不卡| 国产精品亚洲精品日韩电影| 在线观看亚洲精品福利片| 亚洲国产精品一区二区第四页| 亚洲永久无码3D动漫一区| 97久久精品亚洲中文字幕无码| 狠狠色伊人亚洲综合网站色| 亚洲福利精品一区二区三区 | 国产成人精品日本亚洲18图| 成a人片亚洲日本久久| 日韩亚洲人成在线综合日本| 亚洲乱码在线播放| 亚洲成av人片不卡无码久久| 久久久亚洲精品无码| 亚洲综合精品成人| 国产亚洲人成网站在线观看| 亚洲精品免费在线| 国产亚洲精品2021自在线| 亚洲AV无码国产精品色午友在线| 亚洲娇小性xxxx色| 国产亚洲情侣一区二区无码AV| 亚洲国产av美女网站| 亚洲精品亚洲人成在线 | 日日摸日日碰夜夜爽亚洲| 亚洲av永久无码精品网站| 亚洲中文字幕无码一去台湾| 亚洲综合色视频在线观看| 亚洲色av性色在线观无码| 日本亚洲欧美色视频在线播放| 亚洲精品午夜国产VA久久成人| 亚洲最大成人网色香蕉| 久久亚洲中文字幕精品一区四| 亚洲欧洲春色校园另类小说| 亚洲国产精品尤物yw在线| 337p日本欧洲亚洲大胆精品555588| 色噜噜噜噜亚洲第一| 久久国产亚洲精品无码| 国产成人综合亚洲一区| 久久精品国产亚洲av高清漫画| 四虎亚洲国产成人久久精品| 亚洲高清中文字幕综合网|