linux下的Memcache安裝:
1. 下載 memcache的linux版本,注意 memcached 用 libevent 來作事件驅動,所以要先安裝有 libevent。
官方網址:http://memcached.org/
2. 安裝 pecl::memcache。
用 pecl 命令行工具安裝:
1pecl install memcache
或直接從源碼安裝:
1. phpize
2. ./configure
3. make
4. make install
Windows下的Memcache安裝:
1. 下載memcache的windows穩定版,解壓放某個盤下面,比如在c:/memcached
2. 開始→運行→輸入cmd回車→輸入 ‘c:/memcached/memcached.exe -d install’ 安裝
3. 再輸入: ‘c:/memcached/memcached.exe -d start’ 啟動。
NOTE: 以後memcached將作為windows的一個服務每次開機時自動啟動。這樣服務器端已經安裝完畢了。
4.下載php_memcache.dll,請自己查找對應的php版本的文件
5. 在C:/winnt/php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新啟動Apache,然後查看一下phpinfo,如果有memcache,那麼就說明安裝成功!
附件:
memcache下載:http://download.csdn.net/detail/x171306523c/7863679
php_memcache.dll下載:http://download.csdn.net/detail/x171306523c/7863693
Windows下的Memcache卸載:
memcached -d stop
memcached -d remove
sc delete "Memcached Server"
memcached的基本設置:
-p 監聽的端口
-l 連接的IP地址, 默認是本機
-d start 啟動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在運行的memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root運行的時候有效)
-m 最大內存使用,單位MB。默認64MB
-M 內存耗盡時返回錯誤,而不是刪除項
-c 最大同時連接數,默認是1024
-f 塊大小增長因子,默認是1.25-n 最小分配空間,key+value+flags默認是48
-h 顯示幫助
php.ini中的配置:
; 是否在遇到錯誤時透明地向其他服務器進行故障轉移。
memcache.allow_failover = On
; 接受和發送數據時最多嘗試多少個服務器,只在打開memcache.allow_failover時有效。
memcache.max_failover_attempts = 20
; 數據將按照此值設定的塊大小進行轉移。此值越小所需的額外網絡傳輸越多。
; 如果發現無法解釋的速度降低,可以嘗試將此值增加到32768。
memcache.chunk_size = 8192
; 連接到memcached服務器時使用的默認TCP端口。
memcache.default_port = 11211
; 控制將key映射到server的策略。默認值"standard"表示使用先前版本的老hash策略。
; 設為"consistent"可以允許在連接池中添加/刪除服務器時不必重新計算key與server之間的映射關系。
;memcache.hash_strategy = "standard"; 控制將key映射到server的散列函數。默認值"crc32"使用CRC32算法,而"fnv"則表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,但是散列效果更好。
;memcache.hash_function = "crc32"
;memcache也可以作為session的存儲模塊,具體參看:memcache PHP 的 session.save_handler.
http://hi.baidu.com/whzkinger/item/6cc85c5c01fbc011db16355f
memcache的測試代碼:
復制代碼
<?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);
?>