文章目錄
1.memcache介紹
memcache是高性能的分佈式內存式的高速緩存服務器。 一般的使用目的是,通過緩存數據庫查詢結果,減少數據庫訪問次數,以提高動態Web應用的速度、提高可擴展性。簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。
MemCache的工作流程:
先檢查客戶端的請求數據是否在memcached中,如有,直接把請求數據返回,不再對數據庫進行任何操作;如果請求的數據不在memcached中,就去查數據庫,把從數據庫中獲取的數據返回給客戶端,同時把數據緩存一份到memcached中(memcached客戶端不負責,需要程序明確實現);每次更新數據庫的同時更新memcached中的數據,保證一致性;當分配給memcached內存空間用完之後,會使用LRU(Least Recently Used,最近最少使用)策略加上到期失效策略,失效數據首先被替換,然後再替換掉最近未使用的數據。
注意:memcache是php的擴展模塊,memcached是主程序
2.LNMP實現memcache
2.1 安裝memcache插件
ln -s /usr/local/lnmp/php/bin/* /usr/local/bin/
做Php軟鏈接
source /etc/profile
使環境變量生效
yum install -y autoconf
tar zxf memcache-4.0.5.2.tgz
解壓軟件包
cd memcache-4.0.5.2/
phpize
在目錄下生成軟件配置目錄
./configure --with-php-config=/usr/local/lnmp/php/bin/php-config
預編譯,指定php配置文件路徑
make && make install
編譯安裝
注意:php的擴展模塊都可以用phpize在目錄下生成配置目錄
2.2 配置memcache的編譯目錄到配置文件
vim /usr/local/lnmp/php/etc/php.ini
762 extension_dir = /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20190902/
914 extension=openssl.so
915 extension=memcache.so
/etc/init.d/php-fpm reload
重新加載配置
2.3 設置memcached服務
yum install -y memcached.x86_64
systemctl start memcached.service
測試:
yum install -y telnet
telnet localhost 11211
stats ##查看狀態
set name 0 0 6
get name
delete name
2.4 測試memcache加速訪問
cp /soft/memcache-4.0.5.2/memcache.php example.php /usr/local/lnmp/nginx/html/
拷貝測試頁到nginx發佈目錄
vim /usr/local/lnmp/nginx/html/memcache.php
nginx -s reload
重新加載nginx
vim /usr/local/lnmp/nginx/html/example.php
測試: