1. 程式人生 > >Redis和Memcached的優劣比較

Redis和Memcached的優劣比較

Redis是一個功能強大、效能高效的開源資料結構伺服器,Redis最典型的應用是NoSQL。但事實上Redis除了作為NoSQL資料庫使用之外,還能廣泛應用訊息佇列,資料堆疊以及資料快取等眾多場合。RedisMemcached相類似,都是以鍵值對(key-value)存放資料的,但是Redis支援的資料型別及特性遠比Memcached豐富。

在快取應用方面,Redis同樣也是一個記憶體資料庫,擁有Memcached的快速、穩定等特性,並且支援資料快照功能,開發人員可以通過配置檔案制定資料快照時間間隔,Redis會將資料快照自動存放於硬碟中,這樣就算伺服器突然停止服務,Redis也極少會出現丟失資料的現象。所以近些年來越來越多的大型物聯網公司開始使用

Rdeis作為快取伺服器。

相比於MongoDBRedis是更加徹底的Key-Value儲存系統,它沒有專門的查詢語言,也沒有明確的資料型別。一個字串,可以代替所有的儲存型別,例如直接使用string型別存放傳統文字、程式碼、序列等;也可以直接存放資料流,例如圖片、視訊等,並且沒有資料大小的限制。雖然沒有資料型別的限制,單位了方便資料管理,Redis提供了多種資料結構型別,分別為string(字串)、list(列表)、sets(集合)或者是ordered sets(有序集合)。所有的資料型別都支援push/popadd/remove、服務端並集、交集、sets集合差別等操作,這些操作都具有原子性的,

Redis還支援各種不同的排序功能。

Memcached一樣,Redis的儲存方式給予記憶體的,所有的資料讀寫都在記憶體中完成。單Memcache使用的libevent庫,而Redis則原生使用epoll非同步通訊模型,所以在效能上比Memcache更加優秀。同時,Redis還提供了Virtual Memory功能,使得資料能夠在指定間隔時間內儲存到硬碟(由後臺自動完成),避免資料在記憶體中丟失。

MongoDB相比,Redis主要優點分別如下:

Redis資料儲存在記憶體中完成,所以在數度上比較有優勢,MongoDB使用memory-mapped處理方式本質上還是磁碟操作

RedisMongoDB在設計之初均考慮到分散式處理能力,所以這兩者都提供了叢集部署配置介面,但相對而言Redis及全部輸更加容積及穩定。

Redis提供了簡單的事務支援,MongoDB不支援事務。

 

 

Redis並非只有優點,也有缺點,這些缺點是明顯的,分別如下:

Redis沒有欄位的概念,所以在資料查詢上功能比較弱,支援的特性比較簡單。

Redis單個value的最大容量可達1GB,雖然MongoDB單個文件最大容量為16MB,但MongoDB提供了GridFS用於實現超大檔案儲存。

由於Redis本質上是一個記憶體書庫,所以記憶體硬體的容量大小直接決定了Redis可用的資料庫空間(Redis2.0新增了Virtual Memory功能解決了容量問題,但虛擬記憶體本質上就是磁碟)。

Redis雖然在記憶體中查詢資料,但為了確保資料的安全,Redis預設情況下使用子執行緒對資料進行持久化處理,如果配置不當(預設重新整理間隔為20秒),將會是系統執行效率適得其反。

MongoDB提供了mapreduce資料分析功能,Redis則沒有資料分析功能。

相關推薦

RedisMemcached優劣比較

Redis是一個功能強大、效能高效的開源資料結構伺服器,Redis最典型的應用是NoSQL。但事實上Redis除了作為NoSQL資

Redisredismemcached 比較

兩者都是非關係型記憶體鍵值資料庫(NOSQL),主要有以下不同: 資料型別 Memcached 僅支援字串型別,而 Redis 支援五種不同的資料型別,可以更靈活地解決問題。 資料持久化 Redis 支援兩種持久化策略:RDB 快照和 AOF 日誌,而 Memcached 不支援

RedisMemcached的區別

引入 元素 factor epo 就會 分布式集群 oos 全內存 緩沖 說到Redis就會聯想到memcached,反之亦然。了解過兩者的同學有那麽個大致的印象:redis與memcached相比,比僅支持簡單的key-value數據類型,同時還提供list,set,zs

Redis Memcached 的區別

阻塞 並發 類型 slab 伸縮 占用 queue gif 單線程 說到redis就會聯想到memcached,反之亦然。了解過兩者的同學有那麽個大致的印象:redis與memcached相比,比僅支持簡單的key-value數據類型,同時還提供list,set,zset,

談談在.NET Core中使用RedisMemcached的序列化問題

rman -m string create 讓其 ride builder cnblogs ron 前言 在使用分布式緩存的時候,都不可避免的要做這樣一步操作,將數據序列化後再存儲到緩存中去。 序列化這一操作,或許是顯式的,或許是隱式的,這個取決於使用的package是否有

NET Core中使用RedisMemcached

前言 date toa 聯系 timespan 執行 mod init rtu 前言 在使用分布式緩存的時候,都不可避免的要做這樣一步操作,將數據序列化後再存儲到緩存中去。 序列化這一操作,或許是顯式的,或許是隱式的,這個取決於使用的package是否有幫我們做這樣一件事

面試題:緩存RedisMemcached比較

所有 浪費 rem 簡單的 它的 replicas 限制 style 節點 Memcached是一個高性能的分布式內存對象緩存系統,用於動態Web應用以減輕數據庫負載. 它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度. M

redismemcached對比

redis memcache redis memcache區別 nosql redis特點 我總結的: 更加權威的對比 關於這兩種技術選擇的總結: 參考:https://db-engines.com/en/system/Memcached%3BRedishttps://cloud.orac

好好耕耘 redismemcached的區別

特性 HA 內置 設置 AI 服務 其他 一主多從 har 觀點一: 1、Redis和Memcache都是將數據存放在內存中,都是內存數據庫。不過memcache還可用於緩存其他東西,例如圖片、視頻等等; 2、Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,

redisMemcached區別

hash sql數據庫 數據備份 其他 利用 數據緩存 虛擬 僅支持 cached 1、Redis和Memcache都是將數據存放在內存中,都是內存數據庫。不過memcache還可用於緩存其他東西,例如圖片、視頻等等; 2、Redis不僅僅支持簡單的k/v類型的數據,同時還

redismemcached的區別(總結)

數據緩存 tar .com www. emca session lan 臨時性 target 1、Redis和Memcache都是將數據存放在內存中,都是內存數據庫。不過memcache還可用於緩存其他東西,例如圖片、視頻等等; 2、Redis不僅僅支持簡單的k/v類型的數

HttpSocket 優劣比較 使用場景選擇_轉

轉自:http://www.cnblogs.com/webwlsong/p/3198712.html 瞭解HTTP和Socket之前先對網路7層協議有個瞭解: 7 應用層 6 表示層 5 會話層  4 傳輸層  3 網路層  2 資料鏈路層  1 物理

redismemcached的區別(總結) redismemcached的區別(總結) RedisMemcached的區別

來源:https://www.cnblogs.com/457248499-qq-com/p/7392653.html  redis和memcached的區別(總結) 觀點一: 1、Redis和Memcach

RedisMemcached 面試題

Redis相比memcached有哪些優勢? (1) memcached所有的值均是簡單的字串,redis作為其替代者,支援更為豐富的資料型別 (2) redis的速度比memcached快很多 (3) redis可以持久化其資料 Redis支援哪幾種資料型別? String、L

redismongodb的比較

作者:javashareauthor  來源:CSDN  原文:https://blog.csdn.net/javashareauthor/article/details/80444771  版權宣告:本文為博主原創文章,轉載請附上博文連結! >>Redi

redis 第 15 篇 工作記錄-redismemcached有啥區別

同學,你要是現在還不知道redis和memcached是啥?那你趕緊百度一下redis入門和memcahced入門,簡單啟動一下,然後試一下幾個簡單操作,先感受一下。 redis和memcached的區別,不過說實話,memched是早些年各大網際網路公司常用的快取方案,但是現在近幾年基本都是r

好好耕耘 redismemcached的區別(總結)

觀點一: 1、Redis和Memcache都是將資料存放在記憶體中,都是記憶體資料庫。不過memcache還可用於快取其他東西,例如圖片、視訊等等,memcache是記憶體物件快取元件,可以快取實現了序列化介面的物件; 2、Redis不僅僅支援簡單的k/v型別的資料,同時還提供list,se

redismemcached的區別?

        如果簡單地比較redis和memcached的區別,大多數都會得到以下觀點:         1、redis不僅僅支援簡單的k/v型別的資料,同時還提供list,set,hash等資料結構的儲存。         2、redis支援資料的備份,即master-

轉-面試前必看:Redis Memcached 的區別

Redis 的作者 Salvatore Sanfilippo 曾經對這兩種基於記憶體的資料儲存系統進行過比較: Redis支援伺服器端的資料操作:Redis相比Memcached來說,擁有更多的資料結構和並支援更豐富的資料操作,通常在Memcached裡,你需要將資

轉-面試前必看:Redis Memcached mongodb的區別

Redis是一個開源(BSD許可),記憶體儲存的資料結構伺服器,可用作資料庫,快取記憶體和訊息佇列代理。  Memcached是一個自由開源的,高效能,分散式記憶體物件快取系統。  MongoDB是一個基於分散式檔案儲存的資料庫,文件型的非關係型資料庫,與上面兩者不同。1.效