2016年5月9日 星期一

php 使用 memcached,加速存取資料的速度

這幾天剛好實作了 memcached 在主線產品上,剛好記錄一下實作過程

memcached 是基於 NVP(Name-Value Pair) 分散式記憶體快取系統,被大量廣泛運用在線上環境,除了可以加快存取速度,還可以集中管理,避免主機異常而 session 遺失。



 

Memcached for PHP

Step.1 安裝 memcached
$ rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm 
$ yum install memcached

 

Step.2 設定 memcached
PORT="11211" 
USER="memcached"
MAXCONN="2048"
CACHESIZE="64"
OPTIONS=""

可以按照需求調整大小

 

Step.3 啟動 memcached
$ chkconfig memcached on 
$ service memcached start

這樣就搞定 memcached 了,根本超簡單!版本 1.4.25,yum 有跟上最新版本的腳步哦!

 

Step.4 安裝 PHP memcached
$ yum install zlib-devel libmemcached-devel php-pear php-devel gcc gcc-c++ php php-mbstring php-mysql php-pecl-memcached

yum 安裝的 php-pecl-memcached 是 2.2.0 版本的

 

Step.5 修改 php.ini
session.save_handler = memcached 
session.save_path = "localhost:11211"

memcached 的設定檔在安裝 php-pecl-memcached 的時候就建立在 /etc/php.d/z-memcached.ini

 

Step.6 重新啟動 Web & php-fpm 使其生效
$ service nginx reload 
$ service php-fpm reload

 

驗證 memcached
$ vim memcached.php 

<?php
$memcache = new memcached();
$memcache->addServer('127.0.0.1', 11211);
$memcache->set('memcached','insert memcached finisd!');
echo $memcache->get('memcached');
?>

$ php -f memcached.php
insert memcached finisd!

 

查看 memcached 狀態
$ mymcached-tool localhost:11211 stats

 

 

此篇示範的是單機處理,當然最好的方式是採用集中 memcache server 的方式進行管理。

 

 

參考資料:

如何使用 memcached 做快取

php 使用 memcached 存取資料,在記憶體裡,加快速度

 

 

Orignal From: php 使用 memcached,加速存取資料的速度

沒有留言:

張貼留言