現在的業務系統越來復雜,大型門戶網站內容越來越多,數據庫的數據量也越來愈大,所以有了“大數據”這一概念的出現。但是我們都知道當數據庫的數據量和訪問過於頻繁都會影響系統整體性能體驗,特別是並發量高的系統。為此,我們通過數據緩存來,減輕數據庫的壓力。為此,隨著時間的步伐,各式各樣的緩存技術的出現,讓我們對於這些技術有些眼花缭亂。不是說功能最全的最先進,就是適合自己。我們要看看自己系統的定位去評估自己的系統適合使用哪種緩存機制。當然,也可以通過定義緩存接口,以後方便緩存機制的替換。下面我們來了解下緩存的概念、分類及發展趨勢。
一、 概念a、定義數據緩存就是將數據暫存於內存緩存區中的一種技術。
b、目的通常情況下,大量數據是保存在數據庫中的,而應用程序訪問數據庫是一項很費時的操作。如果先將數據庫中的數據緩存到緩存區中,當應用程序需要這些數據時,直接從緩存區中提取,就可以減少系統開銷。
c、 類別本地緩存 > 集群緩存 > 分布式緩存(數據網格)
參考:http://in.relation.to/2012/11/08/data-grid-why/ 二、 緩存類別的對比緩存類別 本地緩存 集群緩存 分布式緩存 存儲位置 應用服務器內存 網絡服務器內存 網絡服務器內存優點 訪問非常快 每一台服務器都包括所有的緩存 數據緩存分布,當緩存增移更,只需要對單台服務器操作缺點 內存有限,不易擴展 對緩存增移更操作,需要對所有服務器訪問 當一某台服務器(服務器集群)宕機或者網絡異常無法訪問時,則該服務器的緩存也無法訪問了。適合系統級別 並發量小(<10),數據量不大(單表數據<10萬)。 業務單一,並發量大,數據量大(千人用戶,並發量在200左右)。 業務量復雜,並發量巨大。 三、 分布式緩存框架對比名稱 Couchbase Memcached Redis 描述 基於CouchDB使用了JSON作為其文檔格式,並兼容Memcached的接口 在內存中實現鍵值對存儲方式,最初設計即是實現緩存 在內存中實現鍵值對存儲方式,用於數據庫、緩存和消息代理(因為Redis非常注重性能,所以大部分設計要求高性能和低延遲)數據模型 文檔數據(鍵值對) 鍵值對 鍵值對(多個數據類型和一組豐富的操作,以及可配置的數據過期、驅逐和持久性)官方網站 www.couchbase.com www.memcached.org redis.io首次發行 2011 2003 2009現行版本 3.0.3, 2015年3月 1.4.24, 2015年4月 3.0.3, 2015年6月許可協議 開源(Apache version 2) 開源(BSD license) 開源(BSD 3-Clause, commercial license available)趨勢圖 參考:db-engines.com/en/ 總結:緩存的發展,其實是前一種類型進化的產物,所以可以兼容前一種類型。哪一種方案最優,最易,要看架構設計要求了。不需要簡單的事情復雜化。但是為了講解緩存,我只會講解Redis。因為他是目前使用率最高的分布式緩存。後面我會講一講如何使用Redis。