萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Memcached 備份還原實戰:memcached-tool + nc 快速遷移方案

Memcached 數據遷移實戰:無官方備份工具下的數據導出導入方案

Memcached 定位純緩存,**原則上不應依賴其持久化**。但實驗環境遷機、藍綠部署等場景需保持緩存熱度,本文介紹利用官方 memcached-tool + nc 實現無代碼備份還原。

一、Memcached 關鍵限制

  • Key 長度 ≤ 250 bytes
  • Value 默認 ≤ 1MB(啟動參數 -I 2m 可調大)
  • 過期時間最大 30 天(0 表示永不過期)
  • 重啟即清空所有數據

二、備份還原標準流程

場景:將 192.168.1.1:11211 數據遷移至本地 11211


# 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 命令與過期時間戳,導入即重放協議指令。注意:若源數據已過期(時間戳 < 當前時間),導入後將不可見。

三、PHP 版備份還原工具

項目: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

適用於無法安裝二進制工具的環境(如共享主機)。

四、libmemcached-tools 豐富工具箱


sudo apt-get install libmemcached-tools
工具功能
memcat獲取 Key 值(如 cat)
memcp複製文件到 Server
memdump導出所有 Key-Value
memflush清空所有數據
memrm刪除指定 Key
memslap負載壓測基準測試
memstat統計信息(命中率、內存用量等)
memtouch更新 Key 過期時間

五、生產環境建議

  • **不要將 Memcached 作為唯一數據源**,業務邏輯需支撐「緩存未命中回源 DB」
  • 遷移時採用「雙寫」或「旁路緩存」模式平滑過渡
  • 關鍵業務緩存預熱腳本化,遷移後自動預熱核心 Key
  • 監控 memstat 指標(hit rate、evictions、memory usage)建立基線
copyright © 萬盛學電腦網 all rights reserved