Web開發來一發(七)Redis和Memcached
阿新 • • 發佈:2019-01-08
1、Redis簡介
Redis是一個Key-Value儲存系統,可以支援String、List、Set等作為value進行儲存,並且支援push/pop、add/remove及取交集並集和差集及更豐富的操作,且保證這些操作的原子性,另外還支援排序。
Redis資料是放在記憶體中的,但會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。
Redis只能使用單執行緒,效能受限於CPU效能,只能達到幾萬QPS。但併發情況下不需要考慮資料一致性問題。
2、Memcached簡介
Memcached是一個高效能的分散式記憶體物件快取系統。
Memcached只支援簡單的key/value資料結構,不像Redis可以支援豐富的資料型別。
Memcached無法進行持久化,資料不能備份,只能用於快取使用,且重啟後資料全部丟失。
Memcached可以利用多核優勢,單例項吞吐量極高,可以達到幾十萬QPS。
3、MongoDB簡介
MongoDB是一個介於關係資料庫和非關係資料庫之間的NoSQL資料庫,是非關係資料庫當中功能最豐富,最像關係資料庫的產品。MongoDB支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料型別。
MongoDB支援的查詢語言非常強大,其語法有點類似於面向物件的查詢語言,幾乎可以實現類似關係資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
MongoDB適合大資料量的儲存,依賴作業系統VM做記憶體管理,很佔記憶體。
MongoDB不支援事務。
4、應用場景
Redis適用於對讀寫效率要求都很高,資料處理業務複雜和對安全性要求較高的系統。
MongoDB主要解決海量資料的訪問效率問題。
Memcached用於在動態系統中減少資料庫負載,適合多讀少寫的場景。
參考資料: