Redis和Memcache的區(qū)別總結(jié)
總結(jié)一:
memcache官方定義
Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
redis官方定義
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
版權(quán)相同
它們都是使用的bsd協(xié)議,使用它的項目可以用于商業(yè)用戶,不必發(fā)布二次修改的代碼,可以修改源代碼。
數(shù)據(jù)類型
redis數(shù)據(jù)類型豐富,支持set liset等類型
memcache支持簡單數(shù)據(jù)類型,需要客戶端自己處理復雜對象
持久性
redis支持數(shù)據(jù)落地持久化存儲
memcache不支持數(shù)據(jù)持久存儲
分布式存儲
redis支持master-slave復制模式
memcache可以使用一致性hash做分布式
value大小不同
memcache是一個內(nèi)存緩存,key的長度小于250字符,單個item存儲要小于1M,不適合虛擬機使用
數(shù)據(jù)一致性不同
redis使用的是單線程模型,保證了數(shù)據(jù)按順序提交。
memcache需要使用cas保證數(shù)據(jù)一致性。CAS(Check and Set)是一個確保并發(fā)一致性的機制,屬于“樂觀鎖”范疇;原理很簡單:拿版本號,操作,對比版本號,如果一致就操作,不一致就放棄任何操作
cpu利用
redis單線程模型只能使用一個cpu,可以開啟多個redis進程
總結(jié)二:
1.Redis中,并不是所有的數(shù)據(jù)都一直存儲在內(nèi)存中的,這是和Memcached相比一個最大的區(qū)別。
2.Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。
3.Redis支持數(shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
4.Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進行使用。
我個人認為最本質(zhì)的不同是Redis在很多方面具備數(shù)據(jù)庫的特征,或者說就是一個數(shù)據(jù)庫系統(tǒng),而Memcached只是簡單的K/V緩存
總結(jié)三:
redis和memecache的不同在于:
1、存儲方式:
memecache 把數(shù)據(jù)全部存在內(nèi)存之中,斷電后會掛掉,數(shù)據(jù)不能超過內(nèi)存大小
redis有部份存在硬盤上,這樣能保證數(shù)據(jù)的持久性。
2、數(shù)據(jù)支持類型:
redis在數(shù)據(jù)支持上要比memecache多的多。
3、使用底層模型不同:
新版本的redis直接自己構(gòu)建了VM 機制 ,因為一般的系統(tǒng)調(diào)用系統(tǒng)函數(shù)的話,會浪費一定的時間去移動和請求。
4、運行環(huán)境不同:
redis目前官方只支持LINUX 上去行,從而省去了對于其它系統(tǒng)的支持,這樣的話可以更好的把精力用于本系統(tǒng) 環(huán)境上的優(yōu)化,雖然后來微軟有一個小組為其寫了補丁。但是沒有放到主干上
memcache只能當做緩存,cache
redis的內(nèi)容是可以落地的,就是說跟mongodb有些類似,然后redis也可以作為緩存,并且可以設(shè)置master-slave
相關(guān)文章
淺談為什么數(shù)據(jù)庫字段建議設(shè)置為NOT NULL
本文主要介紹了MySQL數(shù)據(jù)庫中將字段設(shè)置為NOT NULL的性能和優(yōu)缺點,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-12-12
最新DataGrip2020.2.x破解版激活碼的步驟詳解(支持Mac/Windows/Linux)
這篇文章主要介紹了最新DataGrip2020.2.x破解版激活碼教程詳解(支持Mac/Windows/Linux),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
dbeaver批量導出數(shù)據(jù)到另一個數(shù)據(jù)庫的詳細圖文教程
DBeaver是一款數(shù)據(jù)庫管理軟件,小巧易用,最主要其官方版就可以滿足平常得任務需求,這篇文章主要給大家介紹了關(guān)于dbeaver批量導出數(shù)據(jù)到另一個數(shù)據(jù)庫的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2024-03-03
sql語句實現(xiàn)行轉(zhuǎn)列的3種方法實例
將列值旋轉(zhuǎn)為列名(即行轉(zhuǎn)列)是我們在開發(fā)中經(jīng)常會遇到的一個需要,下面這篇文章主要給大家介紹了關(guān)于sql語句實現(xiàn)行轉(zhuǎn)列的3種方法,分別給出了詳細的示例代碼,需要的朋友可以參考借鑒,下面來一起學習學習吧。2018-02-02
數(shù)據(jù)庫建立索引的一般依據(jù)小結(jié)
以下是一些普遍的建立索引時的判斷依據(jù)。一言以蔽之,索引的建立必須慎重,對每個索引的必要性都應該經(jīng)過仔細分析,要有建立的依據(jù)2012-05-05
MyBatis獲取數(shù)據(jù)庫自生成的主鍵Id詳解及實例代碼
這篇文章主要介紹了MyBatis獲取數(shù)據(jù)庫自生成的主鍵Id詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05

