1. 程式人生 > >windows下memcache的安裝,簡單使用(一)

windows下memcache的安裝,簡單使用(一)

                               為大型網站提速--memcached快取技術

memcached基本概念

1.Memcacheddanga的一個專案,最早是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操作