memcached

memcached 是一套高效能 分散式的快取系統,memcached 是利用記憶體來儲存快取資料,可以利用memcached 減少資料庫負載增加讀取速度,因為將資料儲存於記憶體中了,下次就會直接從 memcached 輸出,不用再透過資料庫再做一次查詢動作,這個對於網站中需要撈取資料庫資料,但又不需要每次都撈一次相當好用。

準備

memcached

memcache

安裝

memcached

1
2
3
./configure --prefix=/usr/local
make
make install

memcache

phpize
./configure
make
make install

將memcache.so複製到 extension_dir 裡,並修改php.ini

1
2
3
4
Installing shared extensions:     /usr/lib64/php/modules/
extension_dir = "/usr/lib64/php/modules"
vi /etc/php.ini
extension=memcache.so

啟動

1
2
3
4
5
6
7
8
/usr/local/bin/memcached -d -m 2048 -l 192.168.1.200 -p 11211 -u root -c 512
 
# -d  表示這是daemon,
# -m 表示會使用幾MB的記憶體來存放資料,
# -l  表示會listen的IP位址,
# -p 則是所listen的port,
# -u 啟動的user為誰,由於memcached預設不可以由root來啟動,所以你如果要用root來啟動,就要加。
# -c 同時間可以有多少個connection。

Firewall

限制連線來源及目的都是網段內的SERVER,以及只允許目的地的TCP 11211 port。

iptables -t filter -A INPUT -p tcp -m tcp -s 192.168.1.0/24 -d 192.168.1.0/24 --dport 11211 -j ACCEPT #memcached

簡易範例-PHP

1
2
3
4
5
6
7
8
9
10
11
$memcache = new Memcache;
$memcache->connect('192.168.1.200', '11211') or die ("Could not connect");
$get_value = $memcache->get('key');
if(!empty($get_value)){
	echo 'cache<p/>';
	echo $get_value;
}
else{
	$memcache->set('key', 'test', MEMCACHE_COMPRESSED, 30);
	echo $memcache->get('key');
}

參考資料

Related Posts with Thumbnails

相關文章

2 thoughts on “memcached

  1. Pingback: session in memcached | 遨遊飛翔

  2. Pingback: CodeIgniter Memcached | 遨遊飛翔

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>