Redis的pipeline,Redispipeline

來源:互聯網
上載者:User

Redis的pipeline,Redispipeline

Redis是一種典型的基於C/S模型的TCP服務。在用戶端與伺服器端的通訊過程中,通常都是用戶端率先發起請求,伺服器在接收到請求後執行相應的任務,最後再將擷取的資料或處理結果以應答的方式發送給用戶端。在此過程中,用戶端都會以阻塞的方式等待伺服器返回的結果。


在每一對請求與應答的過程中,我們不得不承受網路傳輸所帶來的額外開銷。通常將這種開銷稱為RTT(Round Trip Time)。現在我們假設每一次請求與應答的RTT為250毫秒,而伺服器可以再一秒內處理100k資料,可結果則是伺服器每秒最多處理4條請求。


要想解決這個效能問題,如何進行最佳化?

將上面的同步應答方式改造為基於命令管線的非同步應答方式,用戶端在發送命令後,不用立刻等待來著伺服器的應答,而是繼續發送後面的命令。在命令發送完畢後,再一次性的讀取之前所有命令的應答。這樣便也可節省了同步方式中的RTT的開銷。


如果Redis伺服器發現用戶端的請求是基於管線的,那麼伺服器端在接收到請求並處理後,會將每條命令的應答資料存入隊列,之後再發送到用戶端。


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.