php 访问 memcache,memcache+php实现页面访问的加速
一、什么是memcache
memcache是目前主流的一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng);它以key-value形式在內(nèi)存中存儲(chǔ)數(shù)據(jù)。由于數(shù)據(jù)緩存在內(nèi)存中,所以相比操作DB而言,它不需要解析SQL、磁盤I/O等開銷,效率更高。通常用來減輕數(shù)據(jù)庫負(fù)載,提升系統(tǒng)性能,或作為服務(wù)器之間數(shù)據(jù)共享的存儲(chǔ)媒介,比如存儲(chǔ)分布式session。
工作過程:先查看客戶端的請求數(shù)據(jù)是否在memcache中,若存在的話,直接把請求結(jié)果返回給客戶端;若不在緩存中,則從后端數(shù)據(jù)庫中獲取響應(yīng)數(shù)據(jù)包,同時(shí)把獲取的響應(yīng)數(shù)據(jù)包在memcache中保存一份(便于下一次直接再緩存中獲取)。當(dāng)分給memcache的內(nèi)存用完之后,會(huì)使用LRU(Least Recently Used,最近最少使用策略)加上到期失效策略,失效策略先被替換,然后再替換掉最近未使用的數(shù)據(jù)。
二、memcache與memcached的區(qū)別
memcache是通過客戶端的請求來訪問,是這個(gè)項(xiàng)目的名稱;而memcached是服務(wù)器端的主程序文件名。
三、memcache的安裝
由于之前在server6中進(jìn)行了php源碼的安裝,就繼續(xù)在server6中實(shí)驗(yàn)。
1)解壓memcache軟件包
--->? tar zxf memcache-2.2.5.tgz
2) 為了方便直接使用php的二進(jìn)制命令,我們把之前編譯好的php的二進(jìn)制命令的絕對路徑添加在環(huán)境變量中。
--->? vim ~/.bash_profile
--->? source? ~/.bash_profile? ? ? ? # 使添加的環(huán)境變量生效
3)創(chuàng)建預(yù)編譯環(huán)境并進(jìn)行編譯匯編memcache源碼包。phpize用來擴(kuò)展php模塊的,可以在原來編譯好的php中添加新的模塊和功能。phpize的作用也可以檢測環(huán)境(由于phpize是在php安裝目錄下的,所以使用phpize會(huì)根據(jù)php配置的情況產(chǎn)生與其相匹配的configure文件),建立一個(gè)configure文件。需要在一個(gè)目錄下運(yùn)行phpize,且生成的configure文件就在該目錄。
--->? cd /root/memcache-2.2.5
--->? phpize
--->? ./configure???????????? # 預(yù)編譯
--->? make? && make install?? # 匯編安裝
4)編譯完成后,會(huì)提示進(jìn)入/usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/目錄。我們可以在該目錄中查看我們添加的memcache模塊。
--->? cd /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/
--->? ls
--->? php -m | grep memcache ?????? # 此時(shí)沒有添加進(jìn)去
--->? vim /usr/local/lnmp/php/etc/php.ini????????????? # 編輯php配置文件,把memcache模塊的加載打開
--->? /etc/init.d/php-fpm reload
--->? php -m | grep memcache??????????????? # 此時(shí)再次查看memcache模塊是否添加進(jìn)去
5)安裝memcached服務(wù),并啟動(dòng)。(memcache服務(wù)的端口等信息在/etc/sysconfig/memcached文件中)
--->? yum install -y? memcached
--->? /etc/init.d/memcached start
--->? rpm? -qc? memcached ? ? ? ? ? ?? # 查看memcache的配置文件所在目錄
--->? netstat -antlp | grep 11211????? # 從配置文件中可以查看出,memcached服務(wù)所在端口為11211
6)對memcache配置文件進(jìn)行修改
--->? cd? /root/memcache-2.2.5
--->? cp example.php memcache.php /usr/local/lnmp/nginx/html/?? ? # 對example.php文件進(jìn)行查看即可
--->? vim? /usr/local/lnmp/nginx/html/memcache.php ? ? ? # 修改密碼和緩存服務(wù)
7)在瀏覽器中查看。
# 查看example.php的結(jié)果為:
# 查看memcache.php的時(shí)候需要登陸。(此時(shí)的用戶名和密碼為上面自己修改的)
# 輸入正確的用戶名和密碼之后的結(jié)果是:(php和memcache服務(wù)的信息)
# 顯示的是緩存命中情況
8)訪問測試: 在真機(jī)中訪問頁面,使用瀏覽器中查看安裝了memcache和沒安裝memcache的網(wǎng)頁的性能的變化
# 在真機(jī)中使用命令: ab? -c 10 -n 1000 http://172.25.2.6/memcache.php
#? ab? -c 10 -n 1000 http://172.25.2.6/example.php?? # 在截圖中我們可以看出,每個(gè)請求響應(yīng)時(shí)間少。
總結(jié)
以上是生活随笔為你收集整理的php 访问 memcache,memcache+php实现页面访问的加速的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 提示存在lob,案例:Or
- 下一篇: php编写猜拳游戏,Python中猜拳游