一直對redis連接數和redis性能的關係一知半解,我知道redis是單進程單線程,但是具體就不清楚了.期間查了一些資料也沒有找到想要的答案,希望能給一下詳細的解釋,或是給個連結也好
redis連接數
redis性能
光阴似箭催人老,日月如移越少年。
redis內部採用epoll技術,即多路復用IO。對於連線數非常高的時候,有著更好的處理效能,而且redis是單執行緒的避免了上下文切換。
Redis 是單線程的。我如何利用多個 CPU/核心? CPU 不太可能成為 Redis 的瓶頸,因為通常 Redis 要么受內存限制,要么受網路限制。例如,使用在普通Linux 系統上運行的管道Redis 甚至可以每秒傳送500k 請求,因此如果您的應用程式主要使用O(N) 或O(log(N)) 命令,則幾乎不會使用太多CPU 。 但是,為了最大限度地提高 CPU 使用率,您可以在同一個機器中啟動多個 Redis 實例,並將它們視為不同的伺服器。在某些時候,單一盒子可能還不夠,所以如果您想使用多個 CPU,您可以儘早開始考慮某種方式進行分片。 您可以在分割頁面中找到有關使用多個 Redis 實例的更多資訊。
常見問題
redis多個客戶端會造成很大的IO開銷,每個節點間交換資料沒有Ehcache那麼複雜,各有有缺點吧,哈哈
redis內部採用epoll技術,即多路復用IO。對於連線數非常高的時候,有著更好的處理效能,而且redis是單執行緒的避免了上下文切換。
Redis 是單線程的。我如何利用多個 CPU/核心?
CPU 不太可能成為 Redis 的瓶頸,因為通常 Redis 要么受內存限制,要么受網路限制。例如,使用在普通Linux 系統上運行的管道Redis 甚至可以每秒傳送500k 請求,因此如果您的應用程式主要使用O(N) 或O(log(N)) 命令,則幾乎不會使用太多CPU 。
但是,為了最大限度地提高 CPU 使用率,您可以在同一個機器中啟動多個 Redis 實例,並將它們視為不同的伺服器。在某些時候,單一盒子可能還不夠,所以如果您想使用多個 CPU,您可以儘早開始考慮某種方式進行分片。
您可以在分割頁面中找到有關使用多個 Redis 實例的更多資訊。
常見問題
redis多個客戶端會造成很大的IO開銷,每個節點間交換資料沒有Ehcache那麼複雜,各有有缺點吧,哈哈