linux下的Memcache安裝:
1. 下載 memcache的linux版本,注意 memcached 用 libevent 來作事件驅動,所以要先安裝有 libevent。
官方網址:http://memcached.org/
2. 安裝 pecl::memcache。
用 pecl 命令列工具安裝:
pecl install memcache
或直接從原始碼安裝:
phpize ./configure make 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); ?>