Memcached安裝部署及基本操作
Memcached 是一套開源的高性能分布式內存對象緩存系統,它將所有的數據都存儲在內存中,因為在內存中會統一維護一張巨大的Hash表,所以支持任意存儲類型的數據。很多網站通過使用Memcached提高網站的訪問速度,尤其是對於大型的需要頻繁訪問數據的網站。
Memcached是典型的C/S架構,因此需要安裝Memcached服務端與MemcachedAPI客戶端。
Memcached常用典型架構圖如下;
Memcached工作原理;
- (1)Web客戶端發送請求到web服務器的應用程序;
- (2)應用程序通過調用Memcached API客戶端程序庫接口去連接 Memcached服務器,進而查詢數據;
1)如果請求的數據已經在 Memcached服務端緩存中,則 Memcached服務端會將數據返回給Web客戶端;
3)與此同時Memcached服務器也會將數據進行保存,方便用戶下次使用。
本次實驗環境介紹;
主機 | IP地址 | 操作系統 | 主要軟件包 |
---|---|---|---|
Memcached服務器 | 192.168.30.55 | CentOS7 | libevent-2.1.8-stable.tar.gz,memcached-1.5.6.tar.gz |
Memcached API 客戶端 | 192.168.30.10 | CentOS7 | memcache-2.2.7.tgz,LAMP環境 |
百度網盤免費提供軟件安裝包;
libevent-2.1.8-stable.tar.gz:https://pan.baidu.com/s/1TBVEyndXVHcMbxst-kpCuA
memcached-1.5.6.tar.gz:https://pan.baidu.com/s/1oO_mC6J3SV6PLVepjmi2eQ
memcache-2.2.7.tgz:https://pan.baidu.com/s/1WwKRMyqWg_o0fNbyFVke5g
實驗部署
- 事先將需要的軟件包通過winSCP工具復制到/root/目錄下,首先關閉實驗主機的防火墻功能,及selinux
systemctl stop firewalld.service
setenforce 0
一,安裝Memcached服務器
1,安裝libevent
- Libevent是一款跨平臺的事件處理接口的封裝,可以兼容多個操作系統的事件訪問。 Memcached的安裝依賴於Libevent,因此需要先完成Libevent的安裝。
yum install gcc gcc-c++ make -y #yum安裝gcc編譯環境包
解壓軟件包
tar xvf libevent-2.1.8-stable.tar.gz
tar xvf memcached-1.5.6.tar.gz
cd libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent
make && make install
到此libevent安裝完畢
2,安裝Memcached
-
安裝配置時需指定libevent的安裝路徑
cd ../memcached-1.5.6/
./configure \
--prefix=/usr/local/memcached \
--with-libevent=/usr/local/libevent/ #指定libevent安裝路徑
make && make install - 優化memcached服務
創建軟連接,方便使用memcached服務命令
ln -s /usr/local/memcached/bin/* /usr/local/bin/ - 啟動服務
- 啟動 memcached(-d:守護進程、-m:指定緩存大小為32M 、-p:指定默認端口11211 、 -u:指定 登陸用戶為 root)
memcached -d -m 32m -p 11211 -u root
netstat -antp | grep memcached #查看啟動監聽端口
Memcached數據庫操作與管理
- Memcached協議簡單,可直接使用telenet連接Memcached的11211端口,對Memcached數據庫進行操作與管理
telnet 127.0.0.1 11211 #如果沒有telnet命令。需使用yum安裝才可使用
常見操作指令
add username 0 0 7 //第一個0不進行壓縮和序列化標識 第二個0數據過期時間為永不過期 標識號是7就需要輸入7位數。example //輸入數據
get username //獲取查看數據
VALUE username 0 7
examplegets username
VALUE username 0 7 1 //最後一位是更新因子會自增1
exampleset username 0 0 10 //更新信息,若鍵名不存在,則自行添加
everythingreplace username 0 0 8 //更新信息,若鍵名不存在,則報錯
12345678gets username
VALUE username 0 8 4
12345678cas username 0 0 7 4 //檢查更新,更新因子相等則更新否則返回EXISTS
lodging
STOREDappend username 0 0 7 //鍵值後追加數據
example
STOREDprepend username 0 0 2 //鍵值前追加數據
un
STOREDdelete username
flush_all //清除所有緩存數據
OKstats //顯示狀態信息
quit //退出
二,Memcached API 客戶端安裝
首先客戶端需要搭建 LAMP 架構,LAMP架構的具體搭建可以參考另一篇文章《源碼編譯安裝LAMP架構部署(免費提供源碼包及shell安裝腳本)》,在此不演示具體操作步驟,提前將LAMP架構搭建好。
- 安裝Memcached客戶端
yum install autoconf -y
tar zvxf memcache-2.2.7.tgz
cd /opt/memcache-2.2.7由於memcache-2.2.7.tgz源碼包中默認沒有configure配置腳本,需要使用PHP的phpize腳本生成配置腳本configure
/usr/local/php5/bin/phpize //增加為PHP的模塊後再對memcache進行配置編譯
- 再進行配置,編譯安裝
./configure \
--enable-memcache \
--with-php-config=/usr/local/php5/bin/php-config
make && make install
安裝完成後會生成共享組件的位置,下一步將此記錄添加到PHP配置文件中
- 配置PHP添加Memcached組件
vim /usr/local/php5/php.ini
//搜索並修改下面一行,再新增一行extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/"
extension = memcache.so #memcached模塊
測試 Memcached API 功能
- 通過編寫簡單的PHP 測試代碼調用 Memcache 程序接口,來測試是否與 Memcached 服務器協同工作,代碼如下:
vim index.php
<?php
$memcache = new Memcache();
$memcache->connect(‘192.168.30.55‘,11211);
$memcache->set(‘key‘,‘Memcache test Successfull!‘,0,60);
$result = $memcache->get(‘key‘);
unset($memcache);
echo $result;
?>
此段代碼的作用是在客戶端連接Memcached服務器,設置名為“key”的鍵的值為“Memcache test Successfull!”,並讀取顯示。顯示成功,則表示服務器與客戶端協同工作正常。
- 重啟httpd服務
service httpd restart
使用瀏覽器進行訪問,測試結果如圖所示
到此實驗結束。
Memcached安裝部署及基本操作