您好,登錄后才能下訂單哦!
(1)介紹:
Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護進程通信。
(2)特點:
memcached作為高速運行的分布式緩存服務(wù)器,具有以下的特點:
1、協(xié)議簡單;
2、基于libevent的事件處理;
3、內(nèi)置內(nèi)存存儲方式;
4、memcached不互相通信的分布式。
(3)存儲方式:
為了提高性能,memcached中保存的數(shù)據(jù)都存儲在memcached內(nèi)置的內(nèi)存存儲空間中。由于數(shù)據(jù)僅存在于內(nèi)存中,因此重啟memcached、重啟操作系統(tǒng)會導(dǎo)致全部數(shù)據(jù)消失。另外,內(nèi)容容量達到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。memcached本身是為緩存而設(shè)計的服務(wù)器,因此并沒有過多考慮數(shù)據(jù)的永久性問題。
準(zhǔn)備兩臺 centos7 系統(tǒng)的虛擬機,一臺為 Memcached 服務(wù)器,另一臺為裝有 LAMP架構(gòu)的 Memcache 客戶端。
第一步:部署 Memcached 服務(wù)器
(1)安裝依賴環(huán)境包:
yum install gcc gcc-c++ make -y
(2)解壓軟件包:
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/
tar zxvf memcached-1.5.6.tar.gz -C /opt/
(3)編譯安裝 libevent :
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent
make && make install
(4)編譯安裝 memcached :
cd /opt/memcached-1.5.6/
./configure \
--prefix=/usr/local/memcached \
--with-libevent=/usr/local/libevent/
make && make install
(5)方便操作可以創(chuàng)建一個軟鏈接:
ln -s /usr/local/memcached/bin/* /usr/local/bin
(6)開啟 memcached 服務(wù):
memcached -d -m 32m -p 11211 -u root //-d守護進程 ;-m緩存大小32M ;-p端口11211
(7)查看端口是否正常開發(fā):
netstat -natp | grep memcached
第二步:客戶端部署 LAMP 架構(gòu)
(1)LAMP 架構(gòu)之前博客有詳細講過 :部署LAMP架構(gòu)
(2)下面是測試 LAMP 架構(gòu)是否能正常運行:
1、測試數(shù)據(jù)庫工作是否正常:
mysql -u root -p //進入數(shù)據(jù)庫
CREATE DATABASE sky; //創(chuàng)建一個數(shù)據(jù)庫為 sky
GRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123'; //提權(quán)
flush privileges; //刷新數(shù)據(jù)庫
2、修改 PHP 首頁:
vim /usr/local/httpd/htdocs/index.php
<?php
$link=mysql_connect('192.168.220.131','skyuser','admin123');
if($link) echo "<h2>Success!!</h2>";
else echo "Fail!!";
mysql_close();
?>
3、瀏覽器訪問測試 :http://192.168.220.131/index.php ,顯示 Success為正常。
第三步:安裝 Memcache 客戶端
(1)安裝依賴包:
yum install autoconf -y
(2)解壓:
tar zvxf memcache-2.2.7.tgz -C /opt/
(3)編譯(使用PHP的phpize腳本生成配置腳本configure,再進行配置編譯):
cd /opt/memcache-2.2.7
/usr/local/php5/bin/phpize
./configure \
--enable-memcache \
--with-php-config=/usr/local/php5/bin/php-config
(4)安裝:
make && make install
(5)安裝完成后,會出現(xiàn)一行,這是共享文件的位置,后面要用到:
/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/
第四步:配置 PHP ----- 添加 Memcached 組件
vim /usr/local/php5/php.ini
//搜索并修改下面一行,再新增一行
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/"
extension = memcache.so
第五步:客戶端檢測服務(wù)端是否可以正常連接
(1)編寫測試首頁,用于檢查 memcached 工作是否正常
vim /usr/local/httpd/htdocs/index.php
<?php
$memcache=new Memcache();
$memcache->connect('192.168.220.169',11211); ##連接Memcached服務(wù)器地址
$memcache->set('key','Memcache test Successfull!',0,60);
$result=$memcache->get('key');
unset($memcache);
echo$result;
?>
(2)service httpd restart 重啟Apache服務(wù)
(3)瀏覽器網(wǎng)頁訪問:http://192.168.220.131/index.php
(1)安裝使用 telnet 連接主機IP地址以及11211端口,就可以對數(shù)據(jù)庫進行操作和管理了
yum install telnet -y
telnet 127.0.0.1 11211 //連接本地用 127.0.0.1就可以了,連接其他主機使用對應(yīng)IP地址即可
(2)新建數(shù)據(jù):
add username 0 0 7 //添加數(shù)據(jù)(兩個0表示:不進行壓縮和序列化標(biāo)識,數(shù)據(jù)過期時間為永不過期;標(biāo)識號是7就需要輸入7位數(shù)。)
allways //輸入一個7位數(shù)
(2)查詢數(shù)據(jù):
get username //查詢數(shù)據(jù)
gets username
(3)更新數(shù)據(jù):
set username 0 0 10 //更新信息,若鍵名不存在,則自行添加
everything
replace username 0 0 8 //更新信息,若鍵名不存在,則報錯
12345678
(4)檢測/查看 更新數(shù)據(jù):
gets username //檢測更新
VALUE username 0 8 4
12345678
(5)追加數(shù)據(jù):
append username 0 0 7 //鍵值后追加數(shù)據(jù)
example
prepend username 0 0 2 //鍵值前追加數(shù)據(jù)
un
(6)清除數(shù)據(jù):
delete username //清除指定的鍵值數(shù)據(jù)
flush_all //清除所有緩存數(shù)據(jù)
OK
(7)查看服務(wù)器統(tǒng)計信息:
stats //顯示狀態(tài)信息
stats items //返回所有鍵值對的統(tǒng)計信息
stats cachedump 1 0 //返回指定存儲空間的鍵值對
stats slabs //顯示各個slab的信息
stats sizes //輸出所有item的大小和個數(shù)
stats reset //清空統(tǒng)計數(shù)據(jù)
(8)退出:
quit
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。