分佈式緩存服務器,既然用到數據緩存很明顯就是想高效性的獲取數據,大容量的存儲數據.爲了能夠緩存大量的數據以及能夠高效獲取數據,那麼分佈式緩存數據庫就要解決數據能夠水平線性擴展,這樣能夠擴大數據容量,其次是緩存在大併發下自己的性能問題.分佈式緩存服務須要作以下考慮,須要水平線性擴展,那麼就要有合理的路由算法來解決負載均衡問題,以及提供數據備份,這樣某結點服務器done機時,能夠啓動副本.這樣就須要考慮數據一致性問題.分佈式緩存的核心技術包括首先是內存自己的管理問題,包括了內存的分配,管理和回收機制。其次是分佈式管理和分佈式算法,其次是緩存鍵值管理和路由.算法
magent :作爲一個memcached代理服務器它解決了負載均衡問題,自動選擇將數據負載到那個結點服務器上,它也提供了數據備份服務,而且當出現done機時會從副本集來獲取數據,固然每個副本集以及每個服務器均可以是一個代理服務器.數據庫
一.資料收集:Cache緩存
一、Cache定義
(1)狹義概念:用於CPU的相對高速處理與主存(Main Memory)的相對低速處理的之間起到協調功能的硬件設備。
(2)廣義概念:用於速度相差較大的兩種硬件之間,起到協調二者數據傳輸速度差別的結構。
狹義概念來自於Cache自1967出現以來較長時間內的應用場景。由於CPU的數據處理速度,要遠遠高於主存,因此在CPU和主存之間會有高速緩存設備,甚至是多級緩存設備。而廣義概念,則是目前已經被普遍接受的一種定義,且廣義概念中,Cache再也不只侷限於硬件,也能夠是軟件。好比用於網絡相對低速傳輸與磁盤相對高速傳輸之間的速度差別協調。
二、Cache的本質原理
能夠一句話歸納,就是:Cache把要到慢速設備中取的數據預先放到快速設備中。
三、幾種類型的Cache
(1)CPU Cache:置於CPU和主存之間,用於加速CPU對主存的相對慢速操做。
(2)Browser Cache:置於客戶端與服務器之間,用於加速客戶端對服務器的相對慢速操做。
(3)Server Cache:置於網絡請求與本地文件之間,用於加速網絡請求對本地文件的相對慢速操做。
(4)CDN:CDN即Content Delivery Network,在各地設置的節點Cache,加速用戶對服務網絡的相對慢速操做。
(5)Database Cache
(6)OS Cache:內存中存在的對於硬盤讀寫的緩衝區域。tomcat
二.什麼是Memcached服務器
Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它經過在內存中緩存數據和對象來減小讀取數據庫的次數,從而提升動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,可是客戶端能夠用任何語言來編寫,並經過memcached協議與守護進程通訊。cookie
三.典型用法網絡
1.在用戶登錄過濾時,咱們經過在sesison保存用戶登錄狀態來攔截用戶未處於登錄狀態.可是session是服務器端經過cookie存儲的sessionid來存儲的數據,對於服務器集羣下,若是仍是存儲在session中,經過代理服務器過來的請求會負載在任意的服務器上,因此這樣就沒法保證用戶登錄的攔截.這時咱們就能夠經過tomcat的session配置將數據存儲在緩存服務器上.session
2.數據持久化訪問層二級緩存.當咱們須要提升關係數據庫的讀取效率時,咱們可能會用到緩存.拿Mybatis來講自己提供有二級緩存,也提供有一個接口.經過實現接口咱們能夠將數據緩存到你想緩存的數據庫中,而對於這種分佈式緩存數據庫來講,實用性遠遠高度框架自己自帶的緩存數據庫.併發