1. 程式人生 > 實用技巧 >Memcached-1.4.4-14 For Win32 or Win64

Memcached-1.4.4-14 For Win32 or Win64

>>> hot3.png

注意:以下相關軟體是以2015-03-23日能找到的最新的版本為基礎提供的教程

一、下載並安裝memcached伺服器端軟體

這個就好比mysql資料庫,必須安裝mysql伺服器端軟體。

1、下載服務端memcached軟體

32bit:下載memcached-win32-1.4.4-14.zip(直接下)裡面包含6個檔案,將解壓後的資料夾隨便放在什麼位置(例如:D:\wamp_win7\bin\memcached-win32-1.4.4-14,我本地使用wamp搭建的伺服器)。
memcached-win32-1.4.4-14.zip下載頁面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available


103204_dGUh_205403.png

64bit:如果需要win64版,下載memcached-win64-1.4.4-14.zip(直接下),裡面有個三個檔案,用這三個檔案覆蓋win32下同名檔案。
memcached-win64-1.4.4-14.zip下載頁面:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available
103638_Fucj_205403.png


2、以管理員身份執行 cmd.exe,並轉至memcached所在資料夾,比如:

?

1 cd D:\wamp_win7\bin\memcached-win32-1.4.4-14

注意:如果不以管理員身份執行,將得到報錯“failed to install service or service already installed”



3、安裝memcached:

?

1 d:\wamp_win7\bin\memcached-win32-1.4.4-14>memcached.exe-d install

(之後螢幕無任何提示,可以再[控制面板]->[管理工具]->[服務]中檢視到memcached)
104739_kn8K_205403.png
4、啟動memcached:
(1)啟動方法1:
d:\wamp_win7\bin\memcached-win32-1.4.4-14> memcached.exe -d start
之後螢幕無任何提示,但是在“工作管理員”中勾選“顯示所有使用者程序”,此時可以看到memcached.exe程序正在執行
預設埠11211,外部訪問需要開放該埠,否則無法成功連線。

(2)啟動方法2:
[控制面板]->[管理工具]->[服務] 找到 memcached 服務,雙擊它開啟如下圖
105020_al97_205403.png
啟動型別:選擇【自動】
服務狀態:點選下面的【啟動】
備註:可執行檔案的路徑和我上面所說的路徑有些區別可以忽略


5、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 顯示幫助

設定引數時需要先停止memcached,然後用命令列設定,比如:

?

1 D:\wamp_win7\bin\memcached-win32-1.4.4-14>memcached.exe-m1-dstart


6、停止memcached:

?

1 D:\wamp_win7\bin\memcached-win32-1.4.4-14>memcached.exe-dstop


7、解除安裝memcached:

?

1 D:\wamp_win7\bin\memcached-win32-1.4.4-14>memcached.exe-duninstall


相關問題:
1、設定最大佔用記憶體後好像沒起作用。
-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.

轉自:http://stackoverflow.com/questions/6112324/memcached-using-more-than-max-memory
參考:https://code.google.com/p/memcached/wiki/NewConfiguringServer

2、在同一個程式集裡將一個值放入到memcache裡,馬上去時可以取到,但是在另一個程式集裡取的時候取不到,或者telnet也拿不到值。
可能問題及解決辦法:
a. 儲存的值序列化後不同型別,則需要將其更新為同一型別,建議使用同一的常見型別,如string,int等,放入string可以拼成一個xml字串,然後到使用的時候在做解析
b. 很有可能是memcache池已經滿了,可以設定<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擴充套件,使得php能夠操作memcache

1、下載php memcache.dll 擴充套件

官網下載地址:http://pecl.php.net/package/memcache/3.0.8/windows
注意選對版本,因為我本地使用的是wamp搭建的環境,執行緒安全版本、PHP為5.3x,所以我下載的是5.3 Thread Safe (TS) x86(TS為執行緒安全[Thread Safety]的意思),如何檢視是執行緒安全還是非執行緒安全呢?以及如何檢視時PHP版本呢?
110343_Gmdt_205403.png


相關問題:

1、如何檢視是執行緒安全還是非執行緒安全呢?
例如:在跟目錄下新建一個php檔案,ox.php ,然後再裡面輸入

?

1 <?phpphpinfo();

儲存,並在瀏覽器訪問該檔案,如下圖(即通過php的內建函式phpinfo()檢視php的環境資訊)
110935_XJlN_205403.png

可見:PHP的版本為5.3.13,執行緒安全為開啟即是執行緒安全版本。

2、解壓縮下載的檔案(php_memcache-3.0.8-5.3-ts-vc9-x86.zip),如下


111231_NQpG_205403.png

把 php_memcache.dll 擴充套件檔案拷貝到 php 的擴充套件目錄中,例如(E:\wamp_win7\bin\php\php5.3.13\ext)


3、修改php.ini檔案,載入memcache.dll擴充套件

開啟php.ini(例如:E:\wamp_win7\bin\apache\apache2.2.22\bin\php.ini 因為我使用的是wamp搭建的,所以php.ini的檔案是在這裡,其他的一般是在php的目錄下)
找到一堆設定擴充套件的地方或是最底部,新增

?

1 extension=php_memcache.dll

111830_WkpY_205403.png

儲存,然後重啟apache或是nginx或是iis,即可通過phpinfo() 函式執行後的頁面看到memcache已經載入了
112111_MjyU_205403.png
終於搞定!


其他:
php使用 memcache 儲存 session 伺服器配置方法
http://my.oschina.net/u/205403/blog/392596


轉載於:https://my.oschina.net/glenxu/blog/529540