您好,登錄后才能下訂單哦!
內(nèi)容要點:
一、Memcached 簡介:
二、案例部署:
三、Memcached 數(shù)據(jù)庫操作與管理:
一、Memcached 簡介:
(1)介紹:
Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負載。它通過在內(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)會導致全部數(shù)據(jù)消失。另外,內(nèi)容容量達到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。memcached本身是為緩存而設(shè)計的服務(wù)器,因此并沒有過多考慮數(shù)據(jù)的永久性問題。
二、案例部署:
準備兩臺 centos7 系統(tǒng)的虛擬機,一臺為 Memcached 服務(wù)器,另一臺為裝有 LAMP架構(gòu)的 Memcache 客戶端。
角色 | 需要安裝的軟件包 |
Memcached 服務(wù)器(192.168.220.169) | memcached-1.5.6.tar.gz、libevent-2.1.8-stable.tar.gz |
Memcache 客戶端(192.168.220.131) | memcache-2.2.7.tgz 、LAMP(httpd、mysql、php) |
第一步:部署 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) 重啟Apache服務(wù)
service?httpd?restart
(3)瀏覽器網(wǎng)頁訪問:http://192.168.220.131/index.php
三、Memcached 數(shù)據(jù)庫操作與管理:
(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表示:不進行壓縮和序列化標識,數(shù)據(jù)過期時間為永不過期;標識號是7就需要輸入7位數(shù)。) allways???//輸入一個7位數(shù)
(3)查詢數(shù)據(jù):
get?username??//查詢數(shù)據(jù) gets?username
(4)更新數(shù)據(jù):
set?username?0?0?10???????//更新信息,若鍵名不存在,則自行添加 everything replace?username?0?0?8????//更新信息,若鍵名不存在,則報錯 12345678
(5)檢測/查看 更新數(shù)據(jù):
gets?username??//檢測更新 VALUE?username?0?8?4 12345678
(6)追加數(shù)據(jù):
append?username?0?0?7???????//鍵值后追加數(shù)據(jù) example prepend?username?0?0?2?????//鍵值前追加數(shù)據(jù) un
(7)清除數(shù)據(jù):
delete?username?????//清除指定的鍵值數(shù)據(jù) flush_all???????????//清除所有緩存數(shù)據(jù) OK
(8)查看服務(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ù)
(9)退出:
quit
?
免責聲明:本站發(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)容。