注意:以下相關(guān)軟件是以2015-03-23日能找到的最新的版本為基礎(chǔ)提供的教程
一、下載并安裝memcached服務(wù)器端軟件
這個(gè)就好比mysql數(shù)據(jù)庫(kù),必須安裝mysql服務(wù)器端軟件。
1、下載服務(wù)端memcached軟件
32bit:下載 memcached-win32-1.4.4-14.zip(直接下)里面包含6個(gè)文件,將解壓后的文件夾隨便放在什么位置(例如:D:\wamp_win7\bin\memcached-win32-1.4.4-14,我本地使用wamp搭建的服務(wù)器)。
memcached-win32-1.4.4-14.zip下載頁(yè)面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available
64bit:如果需要win64版,下載 memcached-win64-1.4.4-14.zip(直接下),里面有個(gè)三個(gè)文件,用這三個(gè)文件覆蓋win32下同名文件。
memcached-win64-1.4.4-14.zip下載頁(yè)面:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
2、以管理員身份運(yùn)行 cmd.exe,并轉(zhuǎn)至memcached所在文件夾,比如:
cd D:\wamp_win7\bin\memcached-win32-1.4.4-14
注意:如果不以管理員身份運(yùn)行,將得到報(bào)錯(cuò)“failed to install service or service already installed”
3、安裝memcached:
d:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d install
(之后屏幕無(wú)任何提示,可以再[控制面板]->[管理工具]->[服務(wù)]中查看到memcached)
4、啟動(dòng)memcached:
(1)啟動(dòng)方法1:
d:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d start
之后屏幕無(wú)任何提示,但是在“任務(wù)管理器”中勾選“顯示所有用戶進(jìn)程”,此時(shí)可以看到memcached.exe進(jìn)程正在運(yùn)行
默認(rèn)端口11211,外部訪問(wèn)需要開放該端口,否則無(wú)法成功連接。
(2)啟動(dòng)方法2:
[控制面板]->[管理工具]->[服務(wù)] 找到 memcached 服務(wù),雙擊它打開如下圖
啟動(dòng)類型:選擇【自動(dòng)】
服務(wù)狀態(tài):點(diǎn)擊下面的【啟動(dòng)】
備注:可執(zhí)行文件的路徑和我上面所說(shuō)的路徑有些區(qū)別可以忽略
5、memcached基本參數(shù)設(shè)置:
-p 監(jiān)聽的端口
-l 連接的IP地址, 默認(rèn)是本機(jī)
-d start 啟動(dòng)memcached服務(wù)
-d restart 重起memcached服務(wù)
-d stop|shutdown 關(guān)閉正在運(yùn)行的memcached服務(wù)
-d install 安裝memcached服務(wù)
-d uninstall 卸載memcached服務(wù)
-u 以的身份運(yùn)行 (僅在以root運(yùn)行的時(shí)候有效)
-m 最大內(nèi)存使用,單位MB。默認(rèn)64MB
-M 內(nèi)存耗盡時(shí)返回錯(cuò)誤,而不是刪除項(xiàng)
-c 最大同時(shí)連接數(shù),默認(rèn)是1024
-f 塊大小增長(zhǎng)因子,默認(rèn)是1.25
-n 最小分配空間,key+value+flags默認(rèn)是48
-h 顯示幫助
設(shè)置參數(shù)時(shí)需要先停止memcached,然后用命令行設(shè)置,比如:
D:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -m 1 -d start
6、停止memcached:
D:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d stop
7、卸載memcached:
D:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d uninstall
相關(guān)問(wèn)題:
1、設(shè)置最大占用內(nèi)存后好像沒(méi)起作用。
-m tells memcached how much RAM to use for item storage (in megabytes). Note carefully that this isn't a global memory limit, so memcached will use a few % more memory than you tell it to. Set this to safe values. Setting it to less than 48 megabytes does not work properly in 1.4.x and earlier. It will still use the memory.
轉(zhuǎn)自:http://stackoverflow.com/questions/6112324/memcached-using-more-than-max-memory
參考:https://code.google.com/p/memcached/wiki/NewConfiguringServer
2、在同一個(gè)程序集里將一個(gè)值放入到memcache里,馬上去時(shí)可以取到,但是在另一個(gè)程序集里取的時(shí)候取不到,或者telnet也拿不到值。
可能問(wèn)題及解決辦法:
a. 存儲(chǔ)的值序列化后不同類型,則需要將其更新為同一類型,建議使用同一的常見類型,如string,int等,放入string可以拼成一個(gè)xml字符串,然后到使用的時(shí)候在做解析
b. 很有可能是memcache池已經(jīng)滿了,可以設(shè)置<socketPool minPoolSize="100" maxPoolSize="1000" connectionTimeout="00:10:00" deadTimeout="00:02:00"/>
參考1:win7 安裝 memcached
http://www.cnblogs.com/jiajinyi/p/3531381.html
二、PHP啟用memcache擴(kuò)展,使得php能夠操作memcache
1、下載php memcache.dll 擴(kuò)展
官網(wǎng)下載地址:http://pecl.php.net/package/memcache/3.0.8/windows
注意選對(duì)版本,因?yàn)槲冶镜厥褂玫氖莣amp搭建的環(huán)境,線程安全版本、PHP為5.3x,所以我下載的是5.3 Thread Safe (TS) x86(TS為線程安全[Thread Safety]的意思),如何查看是線程安全還是非線程安全呢?以及如何查看時(shí)PHP版本呢?
相關(guān)問(wèn)題:
1、如何查看是線程安全還是非線程安全呢?
例如:在跟目錄下新建一個(gè)php文件,ox.php ,然后再里面輸入
<?php phpinfo();
保存,并在瀏覽器訪問(wèn)該文件,如下圖(即通過(guò)php的內(nèi)置函數(shù)phpinfo()查看php的環(huán)境信息)
可見:PHP的版本為5.3.13,線程安全為開啟即是線程安全版本。
2、解壓縮下載的文件(php_memcache-3.0.8-5.3-ts-vc9-x86.zip),如下
把 php_memcache.dll 擴(kuò)展文件拷貝到 php 的擴(kuò)展目錄中,例如(E:\wamp_win7\bin\php\php5.3.13\ext)
3、修改php.ini文件,加載memcache.dll擴(kuò)展
打開php.ini(例如:E:\wamp_win7\bin\apache\apache2.2.22\bin\php.ini 因?yàn)槲沂褂玫氖莣amp搭建的,所以php.ini的文件是在這里,其他的一般是在php的目錄下)
找到一堆設(shè)置擴(kuò)展的地方或是最底部,添加
extension=php_memcache.dll
保存,然后重啟apache或是nginx或是iis,即可通過(guò)phpinfo() 函數(shù)執(zhí)行后的頁(yè)面看到memcache已經(jīng)加載了
終于搞定!