目前被很多系統所使用,例如Flick、Twitter等。這是一套開放原始碼軟體,以BSD license授權發布。下面記錄一下在lamp環境下的Memcached安裝。關於Memcached的應用,這裡有兩篇不錯的文章:《應用 memcached 提升網站效能》、《Discuz!的Memcache緩衝實現》
使用apt安裝memcached
apt-get install memcached
啟動memcached
1. 終端下使用命令 memcached就可以啟動 。例如 memcached -d。
2. 各個選項說明:
-d選項是啟動一個守護進程,
-m是分配給Memcached使用的記憶體數量,單位是MB。
-u是運行Memcached的使用者。
-l是監聽的伺服器IP地址,如果有多個地址的話,我這裡指定了伺服器的IP地址192.168.0.200。
-p是設定Memcached監聽的連接埠,預設是11211。
-c選項是最大啟動並執行並發串連數,預設是1024。
-P是設定儲存Memcached的pid檔案,例如 /tmp/memcached.pid。
3. 測試memcached。官方有提供一telnet例子。 複製代碼 代碼如下:$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
get foo
VALUE foo 0 2
hi
END
stats
STAT pid 8861
(etc)安裝PHP的memcached拓展
#sudo apt-get install php5-memcache
編輯 /etc/php5/apache2/php.in,添加以下內容。(這一步驟參考了網上的配置,並不是最少的配置)。
[Memcache]
; 是否在遇到錯誤時透明地向其他伺服器進行容錯移轉。
memcache.allow_failover = On
; 接受和發送資料時最多嘗試多少個伺服器,只在開啟memcache.allow_failover時有效。
memcache.max_failover_attempts = 20
; 資料將按照此值設定的塊大小進行轉移。此值越小所需的額外網路傳輸越多。
; 如果發現無法解釋的速度降低,可以嘗試將此值增加到32768。
memcache.chunk_size = 8192
; 串連到memcached伺服器時使用的預設TCP連接埠。
memcache.default_port = 11211
PHP環境下的Memcached測試 複製代碼 代碼如下:<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>