含義及理解:
1 . memcache是一個高性能的分布式的內存對象緩存系統,用于動態web應用以減輕數據庫負擔。通過在內存里維護一個統一的巨大的hash表,來存儲經常被讀寫的一些數組與文件,從而極大的提高網站的運行效率。
memcache是一種內存緩存技術,是一種緩存手段,要看情況使用。對于頻繁讀取,每次讀取重復率高,數據更新頻度低的數據,用memcache可以優化系統響應速度。
memcache是這個項目的名稱,而memcached是它服務端的主程序文件名。
mamcache的使用場景:
訪問頻繁的字典數據,大量的hot數據,頁面緩存,頻繁的查詢條件和結果,臨時處理的數據
memcache在lnmp架構中的部署
將phpize加入環境變量
phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊,比如你想在原來編譯好的php中加入memcached或者ImageMagick等擴展模塊,可以使用phpize。
vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/binsource ~/.bash_profile
memecache的編譯安裝
tat zxf memcache-2.2.5.tgz
yum install autoconf -y
phpize
cd /memcache-2.2.5/
phpize
/.configure
make && make install
修改php主配置文件,增加memcache模塊
并重新加載php
vim /usr/local/lnmp/php/etc/php.ini
873 extension=memcache.so
/etc/init.d/php-fpm reload
查看是否加載成功
php -m | grep memcache php -m | grep mysql
安裝memcached
yum install -y memcached
查看memcached的配置文件
cat /etc/sysconfig/memcached PORT="11211"
USER="memcached"
MAXCONN="1024" ##最大鏈接數1024
CACHESIZE="64"
OPTIONS="" (如果寫為OPTIONS="-l 127.0.0.1" 即為只監聽本機的11211端口)
啟動memcached
systemctl start memcached
telnet測試
yum install telnet -y
拷貝php頁面到nginx默認發布目錄
cd /lnmp安裝包/memcache-2.25
cp memcache.php example.php /usr/local/lnmp/nginx/html/
修改memcache.php內容
vim memcache.phpdefine('ADMIN_USERNAME','memcache'); ## Admin Username(自定義)
define('ADMIN_PASSWORD','westos'); ## Admin Password(自定義)
$MEMCACHE_SERVERS[] = '172.25.230.5:11211'; // add more as an array
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array
只留一個主機,memcache沒有轉發或負載均衡機制,只能一個一個添加(因為本實驗只有一個主機,其實可以添加多個)
測試:
開啟ngixn打開瀏覽器
nginx
nginx -t
nginx -s reload
172.25.11.4/memcache.php
壓力測試:
在真機上
ab -c 10 -n 5000 http://172.25.11.4/index.php #10個并發,5000個請求
ab -c 10 -n 5000 http://172.25.11.4/example.php
通過對比發現
前者很慢,因為沒有緩存,而且failed比較多后者很快,因為有訪問緩存,而且沒有failed的