redis 和 memache 緩存的區別


總結一:

 

1.數據類型

 

Redis數據類型豐富,支持set list等類型

memcache支持簡單數據類型,需要客戶端自己處理復雜對象

 

2.持久性

 

redis支持數據落地持久化存儲

memcache不支持數據持久存儲

 

3.分布式存儲

 

redis支持master-slave復制模式

memcache可以使用一致性hash做分布式

 

value大小不同

 

memcache是一個內存緩存,key的長度小於250字符,單個item存儲要小於1M,不適合虛擬機使用

 

4.數據一致性不同

 

redis使用的是單線程模型,保證了數據按順序提交。

memcache需要使用cas保證數據一致性。CAS(Check and Set)是一個確保並發一致性的機制,屬於“樂觀鎖”范疇;原理很簡單:拿版本號,操作,對比版本號,如果一致就操作,不一致就放棄任何操作

 

5.cpu利用

 

redis單線程模型只能使用一個cpu,可以開啟多個redis進程

 

總結二:

 

1.Redis中,並不是所有的數據都一直存儲在內存中的,這是和Memcached相比一個最大的區別。

2.Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,set,hash等數據結構的存儲。

3.Redis支持數據的備份,即master-slave模式的數據備份。

4.Redis支持數據的持久化,可以將內存中的數據保持在磁盤中,重啟的時候可以再次加載進行使用。

我個人認為最本質的不同是Redis在很多方面具備數據庫的特征,或者說就是一個數據庫系統,而Memcached只是簡單的K/V緩存

 

總結三:

 

redis和memecache的不同在於:

 

1、存儲方式:

memecache 把數據全部存在內存之中,斷電后會掛掉,數據不能超過內存大小

redis有部份存在硬盤上,這樣能保證數據的持久性。

2、數據支持類型:

redis在數據支持上要比memecache多的多。

3、使用底層模型不同:

新版本的redis直接自己構建了VM 機制 ,因為一般的系統調用系統函數的話,會浪費一定的時間去移動和請求。

4、運行環境不同:

redis目前官方只支持Linux 上去行,從而省去了對於其它系統的支持,這樣的話可以更好的把精力用於本系統 環境上的優化,雖然后來微軟有一個小組為其寫了補丁。但是沒有放到主干上

 

memcache只能當做緩存,cache

redis的內容是可以落地的,就是說跟MongoDB有些類似,然后redis也可以作為緩存,並且可以設置master-slave


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM