一.Memcached簡介
Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),Memcached的高性能源于兩階段哈希(two-stage hash)結(jié)構(gòu),Memcached基于一個存儲鍵/值對的HashMap,減輕數(shù)據(jù)庫負載,它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提供動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。當(dāng)內(nèi)存容量達到指定設(shè)定的值時,LRU算法自動刪除不使用的緩存。
二.Memcached應(yīng)用的場景
(1)Memcached大部分是應(yīng)用在作為數(shù)據(jù)庫前端緩存,減少了連接數(shù)據(jù)庫次數(shù),間接的減少了操作數(shù)據(jù)庫,提高了訪問數(shù)據(jù)的效率,提高了系統(tǒng)的性能,因為在大型的系統(tǒng)中,并發(fā)的頻繁的訪問相同的業(yè)務(wù)時,使用Memcached可以大大降低數(shù)據(jù)庫壓力,提高了系統(tǒng)的性能。
(2)當(dāng)訪問量大時緩存數(shù)據(jù)達到很大時,我們在Memcached在集群上,做很容易做水平上的擴展,因為Memcached服務(wù)器端之間是沒有通訊的,當(dāng)內(nèi)存不夠時,可以增加Memcached服務(wù)器端的服務(wù)器,其中的一臺服務(wù)器掛了,不會太大的造成數(shù)據(jù)庫的壓力。
(3)系統(tǒng)集群部署,我們需要用戶登錄信息共享,我們可以使用Memcached進行緩存,這樣用戶就可以在系統(tǒng)之間進行使用。
三.Memcached不適合應(yīng)用的場景
(1)緩存的數(shù)據(jù)量比較小。
(2)緩存的數(shù)據(jù)需要持久化。
四.Memcached安裝
Memcached在實現(xiàn)分布集群部署時, Memcached服務(wù)端的之間是沒有通訊的,服務(wù)端是偽分布式,實現(xiàn)分布式是由客戶端實現(xiàn)的,客戶端實現(xiàn)了分布式算法把數(shù)據(jù)保存到不同的Memcached服務(wù)端。
第一步:先安裝libevent
Memcached用到了libevent這個庫,所以先安裝libevent
(1)http://libevent.org/ 下載
(2)解壓安裝包
# tar zxvf libevent-2.0.21-stable.tar.gz
(3)進入libevent目錄
#cd libevent-2.0.21-stable
(4)指定安裝目錄
# ./configure -prefix=/opt
(5)編譯和安裝
# make &&make install
(6)測試安裝是否成功
#ls /opt/lib |grep libevent 如圖所示:
(1)解壓安裝包
#tar zxvf memcached-1.4.21.tar.gz
(2)進入libevent目錄
#cd memcached-1.4.21
(3)指定libevent的安裝位置
# ./configure --prefix=/opt --with-libevent=/opt 如圖所示:
(4)編譯和安裝
# make &&make install
(5)測試安裝是否成功
#ls -al /opt/bin/memcached 如圖所示:
五.Memcached啟動服務(wù)
(1)我們這邊做Memcached集群服務(wù),所以我們啟動了兩個進程:
#/opt/bin/memcached -d -m 5 -u root -l 192.168.74.129 -p 12000 -c 256 -P /tmp/memcached.pid
#/opt/bin/memcached -d -m 5 -u root -l 192.168.74.130 -p 13000 -c 256 -P /tmp/memcached.pid
-d 以守護程序(daemon)方式運行 memcached。
-m 設(shè)置 memcached 可以使用的內(nèi)存大小,單位為 M。
-l 設(shè)置監(jiān)聽的 IP 地址,如果是本機的話,通??梢圆辉O(shè)置此參數(shù)。
-p 設(shè)置監(jiān)聽的端口,默認為 11211,所以也可以不設(shè)置此參數(shù)。
-P是設(shè)置保存Memcache的pid文件
-u 指定用戶,如果當(dāng)前為 root 的話,需要使用此參數(shù)指定用戶。
-f 設(shè)置增長因子(調(diào)優(yōu)時使用)。
-v/-vv 詳細顯示工作時各種參數(shù)。
我們可以通過命令查看參數(shù)
# /opt/bin/memcached -h 如圖所示:
(2)我們現(xiàn)在檢查一下是否啟動,我們查看線程,如圖所示:
這邊集群部署完成,后面繼續(xù)解釋實現(xiàn)客戶端。