(3)LNMP架構的擴展應用 - memcache 實現緩存優化

實驗環境;
server2:172.25.254.2 有完整的lnmp架構
server1:172.25.254.1
真機: 用來測試訪問

memcached

memcached 是一個免費開源,高性能,分佈式內存對象緩存系統,:

它的作用是加速我們的訪問,因爲我們如果每個人都訪問數據庫的話,數據庫的壓力是很大的,而數據庫在企業中的地位是最高的,所以我們用memcahe應用做緩存來減輕數據庫的負載壓力。

去官網下載:http://memcached.org/downloads
我們先安裝php的擴展支持memcache 在配置 memcached 服務器,注意memcache 是 php的擴展支持,memcached纔是主程序。

配置擴展

我們先配置memcache:
在這裏插入圖片描述
首先看到它的目錄爲這些,裏面沒有configure文件,我們需要用 phpize 進行生成configure文件:

ln -s /usr/local/lnmp/php/bin/* /usr/local/bin/          軟連接方便使用
source /etc/profile       								讓環境變量生效。
yum install autoconf -y									依賴性
phpize 													進入到memcache目錄中執行

在這裏插入圖片描述
已經生成了configure文件 ,這裏應該注意不是所有的壓縮包都可以用phpize進行編譯,是因爲,我們這裏進行操作的memcache 是php的一個插件,所以可以。

編譯:

./configure --with-php-config=/usr/local/lnmp/php/bin/php-config
make && make install

在這裏插入圖片描述
已經放到了php的擴展插件目錄中。
同樣的在php的安裝包目錄中也有很多的自帶的插件:
在這裏插入圖片描述

它在 ext/ 目錄下,我們可以用同樣的方式進行插件的編譯安裝,例如我們安裝一個openssl 插件,支持https。
在這裏插入圖片描述

./configure --with-openssl --with-php-config=/usr/local/lnmp/php/bin/php-config
make && make install

現在我們就安裝了兩個模塊了,我們現在去配置它:

vim /usr/local/lnmp/php/etc/php.ini

在這裏插入圖片描述
在這裏插入圖片描述

/etc/init.d/php-fpm reload
 php -m | grep openssl
 php -m | grep memcache

在這裏插入圖片描述

配置主程序

可以直接用yum下載:

yum install -y memcached.x86_64

配置文件

 vim /etc/sysconfig/memcached 

在這裏插入圖片描述
ions 可以選擇監聽的端口的位置, 加上 -l 127.0.0.1 就是隻監聽本機的11211端口。
在這裏插入圖片描述
去掉後:開啓i所有接口的11211
在這裏插入圖片描述
測試memcache:
在這裏插入圖片描述

telnet是用來測試端口的命令,沒有的話可以yum安裝。

stats查看狀態:
在這裏插入圖片描述
看到的是一些狀態信息。

保存數值:
在這裏插入圖片描述
set 用來設置值 ,get用來獲取值,第一個0代表第一個值,第二個0 代表不限制保存時間,6代表6個字符。
在這裏插入圖片描述
delete 刪除 name ,這次只設置5秒保存時間,一過我們就get不到了

測試能否緩存加速

複製安裝包下的測試發佈頁到nginx的html目錄下:

 cp memcache.php example.php /usr/local/lnmp/nginx/html/

更改 memcache.php 的內容:
在這裏插入圖片描述
更改測試登陸的密碼和服務器ip。 example.php讀取的是11211端口,也就是memcache的信息。

查看 example 頁面的內容,發現它會使用 memcache :
在這裏插入圖片描述

訪問memcache.php:
在這裏插入圖片描述
要我們輸入剛纔的帳號和密碼。
在這裏插入圖片描述
登陸後是這個測試頁面,此時的緩存使用爲0。

剛纔的example.php 是使用memcache 的所以我們訪問example 頁面,多訪問幾次:
在這裏插入圖片描述
發現都是從緩存中讀取,我們可以看見命中緩存的佔比很高。

然後我們用壓力測試工具測試到底有沒有提升我們的訪問速度:

ab -c 10 -n 5000 http://172.25.254.2/index.php        index.php沒有在緩存中 10併發訪問5000次

在這裏插入圖片描述
可見用時17s而且有失敗的請求。

ab -c 10 -n 5000 http://172.25.254.2/example.php      example.php在我們的緩存中

在這裏插入圖片描述
用時2秒且全部命中,這就是memcache的作用,極大的提升了服務器的性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章