當前位置:編程學習大全網 - 源碼下載 - redis pipeline 是做什麽用的

redis pipeline 是做什麽用的

Redis本身是壹個cs模式的tcp server, client可以通過壹個socket連續發起多個請求命令。 每個請求命令發出後client通常會阻塞並等待redis服務端處理,redis服務端處理完後將結果返回給client。

redis的pipeline(管道)功能在命令行中沒有,但redis是支持pipeline的,而且在各個語言版的client中都有相應的實現。 由於網絡開銷延遲,即算redis server端有很強的處理能力,也由於收到的client消息少,而造成吞吐量小。當client 使用pipelining 發送命令時,redis server必須部分請求放到隊列中(使用內存)執行完畢後壹次性發送結果;如果發送的命名很多的話,建議對返回的結果加標簽,當然這也會增加使用的內存;

Pipeline在某些場景下非常有用,比如有多個command需要被“及時的”提交,而且他們對相應結果沒有互相依賴,而且對結果響應也無需立即獲得,那麽pipeline就可以充當這種“批處理”的工具;而且在壹定程度上,可以較大的提升性能,性能提升的原因主要是TCP鏈接中較少了“交互往返”的時間。不過在編碼時請註意,pipeline期間將“獨占”鏈接,此期間將不能進行非“管道”類型的其他操作,直到pipeline關閉;如果妳的pipeline的指令集很龐大,為了不幹擾鏈接中的其他操作,妳可以為pipeline操作新建Client鏈接,讓pipeline和其他正常操作分離在2個client中。不過pipeline事實上所能容忍的操作個數,和socket-output緩沖區大小/返回結果的數據尺寸都有很大的關系;同時也意味著每個redis-server同時所能支撐的pipeline鏈接的個數,也是有限的,這將受限於server的物理內存或網絡接口的緩沖能力。

  • 上一篇:價格突破源代碼
  • 下一篇:電子剎車系統失靈概率
  • copyright 2024編程學習大全網