Redis與Memcached的比較

2021-07-23 14:48:43 字數 678 閱讀 1973

1.memcached是多執行緒,而redis使用單執行緒.

memcached是多執行緒,非阻塞io復用的網路模型,分為監聽主線程和worker子執行緒,監聽執行緒監聽網路連線,接受請求後,將連線描述字pipe 傳遞給worker執行緒,進行讀寫io, 網路層使用libevent封裝的事件庫,多執行緒模型可以發揮多核作用,但是引入了cache coherency和鎖的問題,比如,memcached最常用的stats 命令,實際memcached所有操作都要對這個全域性變數加鎖,進行計數等工作,帶來了效能損耗。

redis為單程序單執行緒模式,採用佇列模式將併發訪問變為序列訪問。redis本身沒有鎖的概念,redis對於多個客戶端連線並不存在競爭。redis是個單執行緒的程式,為什麼會這麼快呢 ?

1)大量執行緒導致的執行緒切換開銷。

2)鎖。

3)非必要的記憶體拷貝。

4)redis多樣的資料結構,每種結構只做自己愛做的事.

2.memcached使用預分配的記憶體池的方式,redis使用現場申請記憶體的方式來儲存資料,並且可以配置虛擬記憶體。

3.redis可以實現持久化,主從複製,實現故障恢復。

4.memcached只是簡單的key與value,但是redis支援資料型別比較多。

Redis與Memcached的比較

1.網路io模型 memcached是多執行緒,非阻塞io復用的網路模型,分為監聽主線程和worker子執行緒,監聽執行緒監聽網路連線,接受請求後,將連線描述字pipe 傳遞給worker執行緒,進行讀寫io,網路層使用libevent封裝的事件庫,多執行緒模型可以發揮多核作用,但是引入了cache...

Redis與Memcached的比較

redis與memcached的比較 1.網路io模型 memcached是多執行緒,非阻塞io復用的網路模型,分為監聽主線程和worker子執行緒,監聽執行緒監聽網路連線,接受請求後,將連線描述字pipe 傳遞給worker執行緒,進行讀寫io,網路層使用libevent封裝的事件庫,多執行緒模型...

Redis與Memcached的比較

redis與memcached的比較 網路io模型 memcached是多執行緒,非阻塞io復用的網路模型,分為監聽主線程和worker子執行緒,監聽執行緒監聽網路連線,接受請求後,將連線描述字pipe 傳遞給worker執行緒,進行讀寫io,網路層使用libevent封裝的事件庫,多執行緒模型可以...