首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Memcached 啟動參數與 Telnet 命令完整操作手冊

     編輯:PHP 相關知識

Memcached 是高效能分散式記憶體快取系統,廣泛用於動態網站加速。本文整理啟動參數、Telnet 管理命令、stats 統計指標解讀與部署建議,協助運維與開發人員快速上手。

一、Memcached 啟動常用參數

參數說明預設值 / 備註
-p <num>TCP 監聽埠11211
-U <num>UDP 監聽埠11211(0 關閉)
-d守護進程模式運行生產環境必加
-u <username>執行使用者非 root 權限,提升安全性
-m <num>最大記憶體用量 (MB)64 MB
-c <num>最大同時連線數1024
-v輸出警告/錯誤訊息除錯用
-vv輸出客戶端請求/回應細節詳細除錯
-l <ip_addr>綁定 IP 位址預設全部介面(生產環境建議綁定內網 IP 或 127.0.0.1)
-P <file>PID 檔案路徑需搭配 -d 使用,方便進程管理

生產環境建議啟動指令:

memcached -d -u memcache -m 1024 -c 2048 -l 10.0.0.5 -p 11211 -P /var/run/memcached.pid

二、Telnet 管理命令速查表

連線方式:telnet <host> 11211

1. 資料操作命令

命令說明範例
set無條件儲存(新增或覆蓋)set mykey 0 60 5\r\nhello (flags=0, exptime=60s, bytes=5)
add鍵不存在時才新增add newkey 0 60 5\r\nworld
replace鍵存在時才覆蓋replace key 0 60 5\r\nnewval
get讀取單一或多鍵值get mykey 或 get key1 key2
gets讀取並回傳 CAS tokengets mykey (多回傳一個版本號)
cas檢查並設定(樂觀鎖)cas mykey 0 60 5 10\r\nvalue (最後參數為 gets 取得的 token)
append在現有值後附加資料append key 0 60 15\r\nappend_data
prepend在現有值前置入資料prepend key 0 60 15\r\nprepend_data
incr數值遞增incr mykey 2
decr數值遞減decr mykey 5
delete刪除鍵值delete mykey
flush_all立即或延遲失效所有項目flush_all 或 flush_all 900 (900 秒後)

2. 統計與監控命令

命令說明
stats通用統計資訊
stats items各 slab 類別項目數
stats slabs記憶體 slab 分配細節
stats sizes各大小區間項目統計
stats cachedump <slab_id> <limit>列出指定 slab 的鍵值(limit=0 顯示全部)
stats reset重置統計計數器
version顯示版本號
verbosity <level>調整日誌輸出等級
quit結束 Telnet 連線

三、stats 關鍵指標深度解讀

指標含義異常判斷建議
uptime服務運行秒數重啟後歸零,可監控服務穩定性
curr_items / total_items目前/歷史總儲存項目數持續增長可能暗示記憶體洩漏或未正確設定過期
bytes目前佔用記憶體位元組數接近 limit_maxbytes 時需擴容或調整策略
curr_connections / total_connections目前/歷史總連線數連線數飆升檢查客戶端連線池設定
cmd_get / cmd_setget/set 總請求次數比例失衡可能表示讀寫模式異常
get_hits / get_misses命中/未命中次數命中率 = hits/(hits+misses),低於 90% 需優化快取策略
evictions為釋放空間而淘汰的項目數非零表示記憶體不足,需增加 -m 或縮短過期時間
bytes_read / bytes_written網路讀寫流量流量異常可能暗示熱鍵或攻擊
threads目前執行緒數通常等於 CPU 核心數

四、實戰部署建議

  1. 綁定內網 IP:-l 10.0.0.5 避免公開網路暴露,防止未授權存取與資料洩漏。
  2. 修改預設埠:非標準埠(如 11211 → 21211)降低自動掃描風險。
  3. 設定合理記憶體與連線上限:依據機器規格與預估 QPS 設定 -m、-c,並預留 20% 緩衝。
  4. 監控淘汰率:evictions > 0 即需擴容或檢查過期策略。
  5. 使用 SASL 認證(Memcached 1.4.3+):生產環境建議啟用 -S 要求認證。
  6. 定期備份關鍵快取:雖為暫存資料,但熱鍵重建成本高時可考慮定期 dump 至磁碟。

五、常見問題排查

現象可能原因排查步驟
連線被拒絕防火牆阻擋 / IP 綁定錯誤 / 服務未啟動檢查 netstat -tlnp | grep 11211、防火牆規則、-l 參數
命中率極低快取鍵設計不當 / 過期時間太短 / 資料更新太頻繁分析 stats、調整鍵粒度、延長 TTL、引入快取預熱
記憶體快速耗盡大物件儲存 / 無過期時間 / slab 碎片化檢查 stats slabs、拆分大物件、設定合理 TTL、調整 -f 增長因子
CAS 操作頻繁失敗高併發修改同一鍵引入分散式鎖、或改用 Redis 事務/Lua 腳本

掌握 Memcached 核心參數與監控指標,能讓快取層穩定支撐高併發業務。建議將 stats 關鍵指標納入監控系統(Prometheus + Grafana / Zabbix / Datadog),設定告警閾值,實現問題早發現、早處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved