Window 下安裝 Memcached
鏈接:http://pan.baidu.com/s/1skH6GZb 密碼:6eyf
1、解壓下載的安裝包到指定目錄。
2璃谨、在 memcached1.4.5 版本之后,memcached 不能作為服務(wù)來運(yùn)行,需要使用任務(wù)計(jì)劃中來開啟一個(gè)普通的進(jìn)程喉前,在 window 啟動(dòng)時(shí)設(shè)置 memcached自動(dòng)執(zhí)行。
我們使用管理員身份執(zhí)行cmd王财,以下命令將 memcached 添加來任務(wù)計(jì)劃表中:
schtasks /create /sc onstart /tn memcached /tr "'c:\memcached\memcached.exe' -m 512"
注意:你需要使用真實(shí)的路徑替代 c:\memcached\memcached.exe被饿。
注意:-m 512 意思是設(shè)置 memcached 最大的緩存配置為512M。
注意:我們可以通過使用 "c:\memcached\memcached.exe -h" 命令查看更多的參數(shù)配置搪搏。
3狭握、如果需要?jiǎng)h除 memcached 的任務(wù)計(jì)劃可以執(zhí)行以下命令:
schtasks /delete /tn memcached
4、安裝php memcache_dll擴(kuò)展
鏈接:http://pan.baidu.com/s/1miDnv8s 密碼:z273
php連接測(cè)試
<?php
$memcache = new Memcache; //創(chuàng)建一個(gè)memcache對(duì)象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //連接Memcached服務(wù)器
$memcache->set('key', 'test'); //設(shè)置一個(gè)變量到內(nèi)存中疯溺,名稱是key 值是test
$get_value = $memcache->get('key'); //從內(nèi)存中取出key的值
echo $get_value;
常用操作
<?php
//連接Memcache
$mem = new Memcache;
$mem->connect("localhost", 11211);
//保存數(shù)據(jù)
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br>";
//替換數(shù)據(jù)
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";
//保存數(shù)組數(shù)據(jù)
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";
//刪除數(shù)據(jù)
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";
//清除所有數(shù)據(jù)
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";
//關(guān)閉連接
$mem->close();
在一臺(tái)或者多臺(tái)機(jī)器啟用一個(gè)或者多個(gè)進(jìn)程论颅,這里是在一臺(tái)機(jī)器啟
用兩個(gè)進(jìn)程,使用兩個(gè)端口:
./memcached -d -u nobody -m 512 127.0.0.1 -p 11211
./memcached -d -u nobody -m 512 127.0.0.1 -p 11212
<?php
//連接Memcache
$mem = new Memcache;
$mem->addServer("localhost", 11211);
$mem->addServer("localhost", 11212);
//保存數(shù)據(jù)
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br>";
//保存數(shù)組數(shù)據(jù)
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";
//刪除數(shù)據(jù)
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";
//關(guān)閉連接
$mem->close();
phpMemcachedAdmin 在線管理工具囱嫩,類似phpmyadmin
Memcached一些特性和限制
? 在 Memcached 中可以保存的item數(shù)據(jù)量是沒有限制的恃疯,只有內(nèi)存足夠
? Memcached單進(jìn)程最大使用內(nèi)存為2G,要使用更多內(nèi)存墨闲,可以分多個(gè)端口開啟多個(gè)Memcached進(jìn)程
? 最大30天的數(shù)據(jù)過期時(shí)間, 設(shè)置為永久的也會(huì)在這個(gè)時(shí)間過期今妄,常量REALTIME_MAXDELTA
606024*30 控制
? 最大鍵長(zhǎng)為250字節(jié),大于該長(zhǎng)度無法存儲(chǔ)鸳碧,常量KEY_MAX_LENGTH 250 控制
? 單個(gè)item最大數(shù)據(jù)是1MB盾鳞,超過1MB數(shù)據(jù)不予存儲(chǔ),常量POWER_BLOCK 1048576 進(jìn)行控制瞻离,
它是默認(rèn)的slab大小
? 最大同時(shí)連接數(shù)是200腾仅,通過 conn_init()中的freetotal 進(jìn)行控制,最大軟連接數(shù)是1024套利,通過
settings.maxconns=1024 進(jìn)行控制
? 跟空間占用相關(guān)的參數(shù):settings.factor=1.25, settings.chunk_size=48, 影響slab的數(shù)據(jù)占用和步進(jìn)方式
查看Memcached內(nèi)部工作狀態(tài)
訪問Memcached:telnet 主機(jī)名 端口號(hào)
查看總狀態(tài):stats
查看某項(xiàng)狀態(tài):stats curr_connections
禁止LRU
有些情況下LRU機(jī)制反倒會(huì)造成麻煩推励。memcached啟動(dòng)時(shí)通過“-M”參數(shù)可以禁止LRU鹤耍,
如下所示:
$ memcached -M -m 1024
啟動(dòng)時(shí)必須注意的是,小寫的“-m”選項(xiàng)是用來指定最大內(nèi)存大小的验辞。不指定具體數(shù)值則
使用默認(rèn)值64MB稿黄。
指定“-M”參數(shù)啟動(dòng)后,內(nèi)存用盡時(shí)memcached會(huì)返回錯(cuò)誤跌造。話說回來抛猖,memcached畢
竟不是存儲(chǔ)器,而是緩存鼻听,所以推薦使用LRU财著。
Memcached使用線程模式工作
在安裝的時(shí)候必須打開:./configure --enable-threads
安裝完之后,啟動(dòng)的時(shí)候看看幫助信息有沒有這條:
-t <num> number of threads to use, default 4
如果存在該選項(xiàng)撑碴,說明已經(jīng)支持了線程撑教,就可以在啟動(dòng)的時(shí)候使用 -t 選項(xiàng)來啟動(dòng)多線程
然后啟動(dòng)的時(shí)候必須加上你需要支持的線程數(shù)量:
/usr/local/memcache/bin/memcached -t 1024
待解決問題:IP限制,會(huì)的可以留言
請(qǐng)大家多多指教醉拓,謝謝伟姐。