Redis面試題(2) :Redis與Memcache的區別,Redis多線程還是單線程

Redis面試題(2) :Redis與Memcache的區別,Redis多線程還是單線程

  1. Redis與Mecache最顯著的區別就是 Redis可以持久化存在磁盤上不管是RDB還是AOF,Mecache是一直放在內存中,內存釋放就沒了。
  2. Redis擁有豐富的數據類,同時還提供String、List、Set、Hash、ZSet等數據結構的存儲
  3. Redis是單線程,那面試官又問了,那為什麼單線程為啥效率那麼高?高峰期能達到每秒併發多少? Redis之所以採用單線程,首先它是基於內存,完全不依賴於CPU,不用去考慮各種鎖的問題,不存在加鎖釋放鎖操作,沒有因為可能出現死鎖而導致的性能消耗, 還有就是採用多路 I/O 複用模型,這裡“多路”指的是多個網絡連接,“複用”指的是複用同一個線程。採用多路 I/O 複用技術可以讓單個線程高效的處理多個連接請求(儘量減少網絡 IO 的時間消耗),且 Redis 在內存中操作數據的速度非常快,也就是說內存內的操作不會成為影響Redis性能的瓶頸,主要由以上幾點造就了 Redis 具有很高的吞吐量。


分享到:


相關文章: