Memcached 是高效能、分散式的記憶體物件快取系統,廣泛用於加速動態 Web 應用。本文詳細記錄 Linux 環境下從原始碼編譯安裝 libevent 與 Memcached、啟動守護程序參數說明,以及核心運作原理(Client-Server 架構、Key-Value 儲存、LRU 淘汰機制)。
Memcached 依賴 libevent 處理非同步網路事件。建議安裝穩定版:
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -xzf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure --prefix=/usr/local/libevent
make && make install
wget https://memcached.org/latest -O memcached-latest.tar.gz
tar -xzf memcached-latest.tar.gz
cd memcached-1.x.x
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make && make install
安裝完成後執行檔位於 /usr/local/memcached/bin/memcached。
/usr/local/memcached/bin/memcached -d -m 128 -l 192.168.1.1 -p 11211 -u www-data
| 參數 | 說明 | 建議值 |
|---|---|---|
-d | 以守護程序模式背景執行 | 必加 |
-m | 最大記憶體用量 (MB) | 視實體記憶體而定,如 512/1024 |
-l | 監聽 IP 位址 | 內網 IP 或 0.0.0.0(所有介面) |
-p | 監聽埠號 | 預設 11211 |
-u | 執行使用者(root 啟動時必須指定) | www-data / nginx / nobody |
-c | 最大同時連線數 | 預設 1024,高併發可調大 |
-t | 執行緒數 | CPU 核心數 |
-P | PID 檔路徑 | /var/run/memcached.pid |
-M 參數禁止自動淘汰(記憶體滿時回傳錯誤)。重啟即遺失所有資料。Memcached 定位為「快取層」,非資料庫。架構設計時務必確保資料來源可重建(如從 DB 讀取)。
-m、-p。['10.0.0.1:11211', '10.0.0.2:11211', '10.0.0.3:11211']。
關鍵指標:get_hits/get_misses(命中率)、bytes/limit_maxbytes(記憶體使用率)、evictions(淘汰次數)。
Memcached 以簡單協定、純記憶體儲存、Client 端分散式演算法,提供極致讀寫效能。安裝需注意 libevent 依賴與使用者權限;運維核心在於監控命中率與淘汰率,合理規劃記憶體大小與過期策略。記住:它是快取,不是儲存,資料遺失須可接受且可重建。