一、下載memcached的穩定版本,然後解壓到某個目錄下面,我放到了d:\app\memcached
二、找到c:\WINDOWS\system32\cmd.exe,右鍵以管理員身份運行,否則會報錯,切換到memcached目錄下面,
安裝
memcached.exe –d install
啓動
memcached.exe -d start
三、下載php_memcache.dll,請自己查找對應的php版本的文件,我的是php5.3.5,注意如果是apache就下VC6的
四、把php_memcache.dll放到php的ext目錄下,在php.ini中加入如下代碼:
extension=php_memcache.dll
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
五、測試php的運行
<?php
$mem = new Memcache;
$mem->connect('127.0.0.1', 11211);
$mem->set('key', ' a value', 0, 60);
$val = $mem->get('key');
echo$val;
如果成功會輸出:a value
六、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 顯示幫助
七、Java客戶端代碼的編寫:
import java.util.Date;
import com.danga.MemCached.*;
publicclass BasicTest {
privatestaticfinal String POOL_NAME="test_pool";
protectedstatic MemCachedClient mcc;
static {
//設置緩存服務器列表,當使用分佈式緩存的時,可以指定多個緩存服務器
String[] servers =
{
"127.0.0.1:11211"
};
//與服務器列表中對應的各服務器的權重
Integer[] weights = {3};
//創建Socked連接池
SockIOPool pool = SockIOPool.getInstance(POOL_NAME);
//向連接池設定服務器和權重
pool.setServers( servers );
pool.setWeights( weights );
//連接池參數
pool.setInitConn( 5 );
pool.setMinConn( 5 );
pool.setMaxConn( 250 );
pool.setMaxIdle( 1000 * 60 * 60 * 6 );
// set the sleep for the maint thread
// it will wake up every x seconds and
// maintain the pool size
pool.setMaintSleep( 30 );
// set some TCP settings
// disable nagle
// set the read timeout to 3 secs
// and don't set a connect timeout
pool.setNagle( false );
pool.setSocketTO( 3000 );
pool.setSocketConnectTO( 0 );
// initialize the connection pool
pool.initialize();
// lets set some compression on for the client
// compress anything larger than 64k
mcc=new MemCachedClient(POOL_NAME);
mcc.setCompressEnable( true );
mcc.setCompressThreshold( 64 * 1024 );
}
publicstaticvoid main(String[] args) throws Exception{
mcc.set("msg","Hello,world!",new Date(System.currentTimeMillis()+1300));
Thread.sleep(500);
System.out.println(mcc.get("msg"));
}
}
ps:附近中爲win32的memcached1.2.4和php5.3 vc6的memcached的dll文件