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封裝的事件庫,多執行緒模型可以...