Memcached 定位純緩存,**原則上不應依賴其持久化**。但實驗環境遷機、藍綠部署等場景需保持緩存熱度,本文介紹利用官方 memcached-tool + nc 實現無代碼備份還原。
-I 2m 可調大)
# 1. 獲取官方工具
wget https://raw.githubusercontent.com/memcached/memcached/master/scripts/memcached-tool
chmod +x memcached-tool
# 2. 導出數據
./memcached-tool 192.168.1.1:11211 dump > data
# data 內容示例:
# add key1 0 1413178136 506
# a:3:{s:4:"text";...}
# 3. 導入本地
nc localhost 11211 < data
# 4. 驗證行數一致
./memcached-tool localhost:11211 dump > local-data
wc -l local-data
wc -l data
關鍵點:導出文件包含 add 命令與過期時間戳,導入即重放協議指令。注意:若源數據已過期(時間戳 < 當前時間),導入後將不可見。
項目:memcached-php-backup-restore
# 備份
php m.php -h 127.0.0.1 -p 11211 -op backup
# 還原
php m.php -h 127.0.0.1 -p 11211 -op restore
適用於無法安裝二進制工具的環境(如共享主機)。
sudo apt-get install libmemcached-tools
| 工具 | 功能 |
|---|---|
memcat | 獲取 Key 值(如 cat) |
memcp | 複製文件到 Server |
memdump | 導出所有 Key-Value |
memflush | 清空所有數據 |
memrm | 刪除指定 Key |
memslap | 負載壓測基準測試 |
memstat | 統計信息(命中率、內存用量等) |
memtouch | 更新 Key 過期時間 |
memstat 指標(hit rate、evictions、memory usage)建立基線