redis與memcached都是比較優秀的快取中介軟體.對於這兩者的選擇,我們可以根據情景的不同做出不同的選擇.本文簡述一下這兩者的部分區別.如下
redis支援五種資料型別.(string,list,hash,set,sortedset)
而memcached僅支援一種資料型別.(string)
redis可以進行持久化操作
redis將資料儲存於記憶體中,但也會定時的將資料存放到硬碟中.
我了解到的儲存到硬碟的方式有兩種:
rdb和aof
rdb:就是將資料建立乙個快照,儲存到硬碟中,通常是隔一段時間執行一次,如果頻繁執行會影響redis的速度.
aof:就是每隔一段時間將redis使用的命令存放的硬碟中.如果不考慮效能可以每執行一次命令存入一次.
在專案中通常使用rdb和aof共存的方式保證資料的完整性和恢復資料的速度.
memcached只儲存於記憶體中
redis採用記憶體申請的方式 當資料超量時,會引用swap 刷掉冷資料到磁碟
memcached採用預分配池管理記憶體.
redis原生支援集群
memcached需要借助客戶端完成集群.
借助客戶端就需要用到io操作,拖慢執行速度.
redis有自己的vm,無需呼叫系統函式.
memcached需要呼叫系統函式.有些情況下呼叫系統函式會影響速度.
memcached使用多執行緒,所以吞吐量較高,對於高於100kb的資料效能較redis好,但是可能會出現鎖衝突
redis使用單執行緒,可以不用考慮鎖對資料插入修改的影響,對於小於100kb的資料來說效能較memcached好,但是無法利用多核提高吞吐量,只能使用多開的方式.
memcached的value儲存量最大為1m
而redis的value最大儲存量為1g
在沒有複雜的資料操作的情況下,只有k,v 使用memcached更快.
memcached更適合做記憶體,redis更適合做資料儲存
eAccelerator與memcached的區別
歡迎各位加入群 206981178,共同學習 eaccelerator和memcached,是目前較為主流的兩個可使用在php之中的快取加速工具.eaccelerator專門為php開發,而memcached不僅僅用在php之中,其他所有的語言都可以使用.eaccelerator的主要功能 1.快取...
redis 事務簡述
一 什麼是redis事務?一組命令的執行看作乙個集體,在這執行中間,這一組命令按順序依次執行,中間不被打斷或干擾。乙個佇列中一次性,順序性,排他性的執行一系列命令。二 事務的基本操作 開啟事務 multi 作用 開啟事務,此條命令執行,後續命令均加入事務中。執行事務 exec 事務結束位置,即執行事...
非關係型資料庫 Redis和Memcache區別
redis和memecache的不同在於 2 1 儲存方式 memecache 把資料全部存在記憶體之中,斷電後會掛掉,資料不能超過記憶體大小 redis有部份存在硬碟上,這樣能保證資料的永續性,支援資料的持久化 筆者注 有快照和aof日誌兩種持久化方式,在實際應用的時候,要特別注意配置檔案快照引數...