Redis爲什麼高效?應用場景是什麼?性能瓶頸在哪裏?

爲什麼高效:

    1、完全基於內存,大多數請求都是內存操作,非常快速;

    2、數據結構簡單,操作簡單;

    3、採用單線程,避免了不必要的上下文切換和競爭條件,不存在多進程或者多線程的切換,不用考慮鎖帶來的性能消耗; 

    4、使用多路 I/O複用模型,非阻塞 IO

 

應用場景:   

     緩存(數據查詢、熱點數據、商品數據、短連接、新聞內容等。(最多使用)

     單點登錄SSO,session共享

     任務隊列(秒殺、搶購、12306等等)

     數據過期處理(可以精確到毫秒)

     網站訪問排名…應用排行榜

     網站訪問統計

     聊天在線好友列表

 

性能瓶頸

    1、機器內存大小

          內存大小關係到Redis存儲的數據量

     2、網絡帶寬

          Redis客戶端執行一條命令分爲四個過程:發送命令、命令排隊、命令執行、返回結果。

         其中發送命令+返回結果這一過程被稱爲Round Trip Time(RTT 往返時間)

          Redis的客戶端和服務端可能部署在不同的機器上: 例如客戶端在北京,Redis服務端在上海,兩地直線距離約爲1300公里,那麼1次RTT時間=1300×2/(300000×2/3)=13毫秒(光在真空中傳輸速度爲每秒30萬公里,這裏假設光纖爲光速的2/3),那麼客戶端在1秒內大約只能執行80次左右的命令,這就和Redis的高併發高吞吐特性背道而馳啦。

         所以一般情況下,都是就近部署!

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章