欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

redis的管道機制是如何實現的

謝彥文2年前27瀏覽0評論

redis的管道機制是如何實現的?

目前來看,redis的管道機制的實現是通過使用批量操作進行發送命令和返回,其結果可以稱為 Round Trip Time (RTT,往返時間)。

在Redis中提供了批量操作命令,例如mget、mset等,有效地節約了RTT。但是大部分命令是不支持批量操作的。

為此,Redis提供了一個稱為管道(Pipeline) 的機制將一組Redis命令進行組裝,通過一次 RTT 傳輸給 Redis,再將這些 Redis 命令的執行結果按順序傳遞給客戶端。即使用pipeline執行了n次命令,整個過程就只需要一次 RTT。

它的好處來源于管道機制,Pipeline管道機制不單單是為了減少RTT的一種方式,它實際上大大提高了Redis的QPS。原因是,在沒有使用管道機制的情況下,從訪問數據結構和產生回復的角度來看,為每個命令提供服務是非常便宜的。

但是從底層套接字的角度來看,這是非常昂貴的,這涉及read()和write()系統調用,從用戶態切換到內核態,這種上下文切換開銷是巨大。

而使用Pipeline的情況下,通常使用單個read()系統調用讀取許多命令,然后使用單個write()系統調用傳遞多個回復,這樣就提高了QPS。

簡而言之,就是提升了運行的速度以及效果。其中,QPS(Query Per Second)就是數據運行的一個重要指標,QPS 其實是衡量吞吐量(Throughput)的一個常用指標,就是說服務器在一秒的時間內處理了多少個請求。