爲什麼高效:
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的高併發高吞吐特性背道而馳啦。
所以一般情況下,都是就近部署!