所謂redis很快,到底是指的什麼?
響應時長很短
那麼響應時長由什麼組成呢?
響應時長=網絡耗時+redis自身耗時
網絡耗時正常和運營商相關,一般爲近似固定的延時
redis自身耗時=接受請求+分發請求+處理請求
總結redis單線程比較快的原因:
1) 使用IO多路複用,例如epoll (提升吞吐量)
2) 純內存操作 (處理請求耗時短,單位時間內處理的請求數量就多)
3) 高效的數據結構,比如hash等 (儘量接近O(1)時間複雜度高效查詢)
4) 性能瓶頸在內存,CPU不是瓶頸,單線程避免線程上下文的切換 (找到瓶頸所在,避免額外損耗)
5) 連接池 (避免連接創建和關閉帶來的損耗)