国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比

這篇具有很好參考價值的文章主要介紹了Python異步編程之web框架 異步vs同步 Redis并發(fā)對比。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比

1|0測試基本信息

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

2|0flask 同步框架

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

from flask import Flask
from redis import StrictRedis

app = 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 res


if __name__ == '__main__':
    app.run(port=8090, host="0.0.0.0")

2|1壓測結(jié)果

并發(fā)量:342

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比

3|0starlette 異步框架

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

from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route
from uvicorn.main import run
from redis.asyncio import StrictRedis

async 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")

3|1壓測結(jié)果

并發(fā)量:1361
?

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比

4|0對比

并發(fā)曲線圖對比:

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比

參數(shù)對比:

框架 Redis IO 純框架無IO 文件IO 數(shù)據(jù)庫IO
flask 315 463 453 225
starlette 1361 1539 1538 1496
性能比(異步/同步) 4.3 3.3 3.4 6.6

5|0總結(jié)

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

加油吧,測試人!如果你需要提升規(guī)劃,那就行動吧,在路上總比在起點觀望的要好。未來的你肯定會感謝現(xiàn)在拼命的自己!

Python異步編程之web框架 異步vs同步 Redis并發(fā)對比?文章來源地址http://www.zghlxwxcb.cn/news/detail-498348.html

到了這里,關(guān)于Python異步編程之web框架 異步vs同步 Redis并發(fā)對比的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python web 框架對比:Flask vs Django

    哈嘍大家好,我是咸魚 今天我們從幾個方面來比較一些現(xiàn)在流行的兩個 python web 框架——Flask 和 Django,突出它們的主要特性、優(yōu)缺點和簡單案例 到最后,大家將更好地了解哪個框架更適合自己的特定需求 參考鏈接:https://djangocentral.com/flask-vs-django-selecting-the-perfect-python-web

    2024年02月11日
    瀏覽(32)
  • 【并發(fā)編程】自研數(shù)據(jù)同步工具的優(yōu)化:創(chuàng)建線程池多線程異步去分頁調(diào)用其他服務(wù)接口獲取海量數(shù)據(jù)

    前段時間在做一個數(shù)據(jù)同步工具,其中一個服務(wù)的任務(wù)是調(diào)用A服務(wù)的接口,將數(shù)據(jù)庫中指定數(shù)據(jù)請求過來,交給kafka去判斷哪些數(shù)據(jù)是需要新增,哪些數(shù)據(jù)是需要修改的。 剛開始的設(shè)計思路是,,我創(chuàng)建多個服務(wù)同時去請求A服務(wù)的接口,每個服務(wù)都請求到全量數(shù)據(jù),由于這些

    2024年02月12日
    瀏覽(24)
  • 【文末送書】Python高并發(fā)編程:探索異步IO和多線程并發(fā)

    【文末送書】Python高并發(fā)編程:探索異步IO和多線程并發(fā)

    歡迎關(guān)注博主 Mindtechnist 或加入【智能科技社區(qū)】一起學(xué)習(xí)和分享Linux、C、C++、Python、Matlab,機器人運動控制、多機器人協(xié)作,智能優(yōu)化算法,濾波估計、多傳感器信息融合,機器學(xué)習(xí),人工智能等相關(guān)領(lǐng)域的知識和技術(shù)。搜索關(guān)注公粽號 《機器和智能》 發(fā)送“刷題寶

    2024年02月15日
    瀏覽(22)
  • web前端框架Javascript之JavaScript 異步編程史

    web前端框架Javascript之JavaScript 異步編程史

    早期的 Web 應(yīng)用中,與后臺進行交互時,需要進行 form 表單的提交,然后在頁面刷新后給用戶反饋結(jié)果。在頁面刷新過程中,后臺會重新返回一段 HTML 代碼,這段 HTML 中的大部分內(nèi)容與之前頁面基本相同,這勢必造成了流量的浪費,而且一來一回也延長了頁面的響應(yīng)時間,總

    2024年02月14日
    瀏覽(29)
  • Python異步編程高并發(fā)執(zhí)行爬蟲采集,用回調(diào)函數(shù)解析響應(yīng)

    Python異步編程高并發(fā)執(zhí)行爬蟲采集,用回調(diào)函數(shù)解析響應(yīng)

    異步技術(shù)是Python編程中對提升性能非常重要的一項技術(shù)。在實際應(yīng)用,經(jīng)常面臨對外發(fā)送網(wǎng)絡(luò)請求,調(diào)用外部接口,或者不斷更新數(shù)據(jù)庫或文件等操作。 這這些操作,通常90%以上時間是在等待,如通過REST, gRPC向服務(wù)器發(fā)送請求,通??赡艿却龓资撩胫翈酌耄踔粮L。如

    2024年02月08日
    瀏覽(24)
  • Python Sanic 異步 Web 框架

    Sanic 是一個基于 Python 3.6+ 的異步 Web 框架,它使用了 Python 的 async/await 語法來實現(xiàn)高效的非阻塞 IO 操作。 Sanic 的主要作用是提供一個快速、輕量級的方式來構(gòu)建異步 Web 服務(wù),適用于處理大量并發(fā)請求的場景。 以下是一個簡單的示例代碼,演示了如何使用 Sanic 創(chuàng)建一個簡單

    2024年02月22日
    瀏覽(19)
  • 同步編程和異步編程的區(qū)別

    同步編程和異步編程的區(qū)別

    我在這里用幾個例子(附帶圖文)給你們講解一下,具體區(qū)別。 ? 一、同步 執(zhí)行步驟: step1 ===》 step2 ===》step3 ?先打印 hello moon, 再打印圖片, 等待圖片打印完,再打印 hello Jupiter 一步一步執(zhí)行,等待上一步執(zhí)行完,再執(zhí)行下一步。 二、異步 step1 ===》step2 / step3 ?先打印

    2024年02月15日
    瀏覽(20)
  • 并發(fā)編程 --- 異步方法的異常處理

    現(xiàn)在模擬一個異步方法拋出了異常: 思考一下, DontHandle() 方法是否能夠捕獲到異常? 答案是:不會捕獲到異常! 因為 DontHandle() 方法在 ThrowAfter() 方法拋出異常之前,就已經(jīng)執(zhí)行完畢。 那么上述代碼怎么才能捕獲到異常呢? 若想要捕獲異常則必須通過 await 等待 Th

    2024年02月15日
    瀏覽(19)
  • Spring Boot - Application Events 同步 VS 異步 發(fā)布訂閱事件實戰(zhàn)

    Spring Boot - Application Events 同步 VS 異步 發(fā)布訂閱事件實戰(zhàn)

    Spring Boot - Application Events 的發(fā)布順序_ApplicationStartingEvent Spring Boot - Application Events 的發(fā)布順序_ApplicationEnvironmentPreparedEvent Spring Boot - Application Events 的發(fā)布順序_ApplicationContextInitializedEvent Spring Boot - Application Events 的發(fā)布順序_ApplicationPreparedEvent Spring Boot - Application Events 的發(fā)布順

    2024年01月17日
    瀏覽(21)
  • Rust基礎(chǔ)拾遺--并發(fā)和異步編程

    ? ?通過 Rust程序設(shè)計-第二版 筆記的形式對Rust相關(guān) 重點知識 進行匯總,讀者通讀此系列文章就可以輕松的把該語言基礎(chǔ)撿起來。 為什么一些看似正確的多線程慣用法卻根本不起作用? 與“內(nèi)存模型”有關(guān) 你最終會找到一種自己用起來順手且不會經(jīng)常出錯的并發(fā)慣用法。

    2024年02月19日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包