如今的業務系統越來複雜,大型門戶網站內容愈來愈多,數據庫的數據量也越來愈大,因此有了「大數據」這一律唸的出現。可是咱們都知道當數據庫的數據量和訪問過於頻繁都會影響系統總體性能體驗,特別是併發量高的系統。爲此,咱們經過數據緩存來,減輕數據庫的壓力。爲此,隨着時間的步伐,各式各樣的緩存技術的出現,讓咱們對於這些技術有些眼花繚亂。不是說功能最全的最早進,就是適合本身。咱們要看看本身系統的定位去評估本身的系統適合使用哪一種緩存機制。固然,也能夠經過定義緩存接口,之後方便緩存機制的替換。下面咱們來了解下緩存的概念、分類及發展趨勢。redis
1、 概念a、定義數據緩存就是將數據暫存於內存緩存區中的一種技術。數據庫
b、目的一般狀況下,大量數據是保存在數據庫中的,而應用程序訪問數據庫是一項很費時的操做。若是先將數據庫中的數據緩存到緩存區中,當應用程序須要這些數據時,直接從緩存區中提取,就能夠減小系統開銷。緩存
c、 類別本地緩存 > 集羣緩存 > 分佈式緩存(數據網格)服務器
參考:http://in.relation.to/2012/11/08/data-grid-why/2、 緩存類別的對比
緩存類別 本地緩存 集羣緩存 分佈式緩存 存儲位置 應用服務器內存 網絡服務器內存 網絡服務器內存 優勢 訪問很是快 每一臺服務器都包括全部的緩存 數據緩存分佈,當緩存增移更,只須要對單臺服務器操做 缺點 內存有限,不易擴展 對緩存增移更操做,須要對全部服務器訪問 當一某臺服務器(服務器集羣)宕機或者網絡異常沒法訪問時,則該服務器的緩存也沒法訪問了。 適合系統級別 併發量小(<10),數據量不大(單表數據<10萬)。 業務單一,併發量大,數據量大(千人用戶,併發量在200左右)。 業務量複雜,併發量巨大。 3、 分佈式緩存框架對比
名稱 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。