Memcached 是一套分布式的快取系統,更多理論的說明可以參考這篇
與 redis 同為 NoSQL 記憶體資料庫
基本上就是 PHP 要實現把資料透過記憶體存取,就要用 memcached,讓存取速度變快,
但聽說 Memcache 與 Memcached 是不同的,我這邊是測試 memcached
php memcache 獨立用php 實現,是舊客戶端,多個問題,而且功能少,屬性也可設置的少 php memcached 是基於原生的c的libmemcached的擴展,更加完善,建議替換為php memcached
安裝 memcached
rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm yum install memcached
確認 /etc/sysconfig/memcached (基本上不用動)
PORT="11211" # listen port number USER="memcached" MAXCONN="1024" CACHESIZE="64" # 64 MBytes,記憶體大小 OPTIONS=""
啟用 memcached
/etc/init.d/memcached start
安裝 memcached for PHP
yum install zlib-devel libmemcached-devel php-pear php-devel gcc gcc-c++ php php-mbstring php-mysql yum install php-pecl-memcached
以上 memcached for php 的版本是 2.1.0
也可以用 pecl 安裝,版本會是 2.2.0
pecl install -f memcached
確認 /etc/php.d/memcached.ini
extension=memcached.so
將 session 存在 memcached
vi /etc/php.ini
session.save_handler = memcached session.save_path = "localhost:11211"
Apache 要 restart 一下
service httpd restart
或者 PHP 程式利用 memcached
<?php $memcache = new memcached(); $memcache->addServer('localhost',11211); $memcache->set('memcached','hello memcached!<br/>'); echo $memcache->get('memcached');
執行
php -f memcached.php
結果,意思是我把 value 為 hello memcached!<br/> ,它的 key 是 memcached 寫入,再透過 key = memcached 取 value 出來
hello memcached!<br/>
參考 : https://www.digitalocean.com/community/tutorials/how-to-store-php-sessions-in-memcached-on-a-centos-vps
查看 memcached 的統計資料
echo "stats" | nc localhost 11211 # or memcached-tool localhost:11211 stats
如果要用 perl 的話
yum install -y perl-Cache-Memcached.noarch
use strict; use Cache::Memcached(); my $memcached = new Cache::Memcached{'servers'=>["localhost:11211"],debug=>1}; $memcached->flush_all(); for(my $i=0;$i<51;$i++){ $memcached->set($i, "1k"); } print $memcached->get(50); $memcached->disconnect_all();
留言