Memcached真的過時了嗎?Redis與Memcached的比較?使用者43932632400604512020-01-09 23:17:58

很多開發者都認為Redis不可能比Memcached快,Memcached完全基於記憶體,而Redis具有持久化儲存特性,即使是非同步的,Redis也不可能比Memcached快。但是測試結果基本是Redis佔絕對優勢。一直在思考這個原因,目前想到的原因有這幾方面。萊垍頭條

Libevent。和Memcached不同,Redis並沒有選擇libevent。Libevent為了迎合通用性造成程式碼龐大(目前Redis程式碼還不到libevent的1/3)及犧牲了在特定平臺的不少效能。Redis用libevent中兩個檔案修改實現了自己的epoll event loop(4)。業界不少開發者也建議Redis使用另外一個libevent高效能替代libev,但是作者還是堅持Redis應該小巧並去依賴的思路。一個印象深刻的細節是編譯Redis之前並不需要執行。/configure。條萊垍頭

CAS問題。CAS是Memcached中比較方便的一種防止競爭修改資源的方法。CAS實現需要為每個cache key設定一個隱藏的cas token,cas相當value版本號,每次set會token需要遞增,因此帶來CPU和記憶體的雙重開銷,雖然這些開銷很小,但是到單機10G+ cache以及QPS上萬之後這些開銷就會給雙方相對帶來一些細微效能差別(5)。 萊垍頭條