windows下memcache的安裝,簡單使用(一)
為大型網站提速--memcached快取技術
■memcached基本概念
1.Memcached是danga的一個專案,最早是LiveJournal服務的,最初為了加速LiveJournal訪問速度而開發的,後來被很多大型的網站採用。 官方網站:和memcached.org 2.Memcached是一個高效能的分散式的記憶體物件快取系統,目前全世界不少人使用這個快取專案來構建自己大負載的網站,來分擔資料庫的壓力,通過在記憶體裡維護一個統一的巨大的hash表,它能夠用來儲存各種格式的資料,包括影象、視訊、檔案以及資料庫檢索的結果等。簡單的說就是將資料呼叫到記憶體中,然後從記憶體中讀取,從而大大提高讀取速度。■ Memcache工作原理
首先 memcached 是以守護程式方式運行於一個或多個伺服器中,隨時接受客戶端的連線操作,客戶端可以由各種語言編寫,目前已知的客戶端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。客戶端在與 memcached 服務建立連線之後,接下來的事情就是存取物件了,每個被存取的物件都有一個唯一的識別符號 key,存取操作均通過這個 key 進行,儲存到memcached 中的物件實際上是放置記憶體中的,並不是儲存在 cache 檔案中的,這也是為什麼 memcached 能夠如此高效快速的原因。注意,這些物件並不是持久的,服務停止之後,裡邊的資料就會丟失。
與許多 cache 工具類似,Memcached 的原理並不複雜。它採用了C/S的模式,在 server 端啟動服務程序,在啟動時可以指定監聽的 ip,自己的埠號,所使用的記憶體大小等幾個關鍵引數。一旦啟動,服務就一直處於可用狀態。Memcached 的目前版本是通過C實現,採用了單程序,單執行緒,非同步I/O,基於事件 (event_based) 的服務方式.使用libevent 作為事件通知實現。多個 Server 可以協同工作,但這些 Server 之間是沒有任何通訊聯絡的,每個 Server 只是對自己的資料進行管理。Client 端通過指定 Server 端的 ip 地址(通過域名應該也可以)。需要快取的物件或資料是以 key->value對的形式儲存在Server端。key 的值通過 hash 進行轉換,根據 hash 值把 value 傳遞到對應的具體的某個 Server 上。當需要獲取物件資料時,也根據 key 進行。首先對 key 進行 hash,通過獲得的值可以確定它被儲存在了哪臺 Server 上,然後再向該 Server 發出請求。Client 端只需要知道儲存 hash(key) 的值在哪臺伺服器上就可以了。
其實說到底,memcache 的工作就是在專門的機器的記憶體裡維護一張巨大的 hash 表,來儲存經常被讀寫的一些陣列與檔案,從而極大的提高網站的執行效率。
■memcached windows環境下安裝
在這裡簡單介紹一下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的一個服務每次開機時自動啟動。這樣伺服器端已經安裝完畢了。
2. 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 顯示幫助
3. 設定Memcache快取大小和埠
Memcache的預設啟動時的引數可能不滿足實際生產環境的需要,於是就想到直接修改windows服務的啟動引數,操作如下:
開啟登錄檔,找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server
其中的ImagePath項的值為: c:\memcached\memcached.exe" -d runservice
改成:c:\memcached\memcached.exe" -p 12345 -m 128 -d runservice
其中,-p就是埠,-m就是快取大小,以M為單位。
cmd輸入;telnet 127.0.0.1 11211,我的報錯:'telnet' 不是內部或外部命令,也不是可執行的程式 或批處理檔案。
對Memcached快取服務的狀態查詢,可以先telnet連線上服務:telnet 127.0.0.1 11211 ,然後使用 stats命令檢視快取服務的狀態,會返回如下的資料:
Ok,安裝memcached1.4.4成功。
1登陸到telnet連線到memcached服務
2crud操作