
rDickcached
rDiskcached 是一款基於 Rust 打造、完全相容於 Memcached 協定的極致效能快取伺服器。它結合了 Sled (磁碟持久化) 與 Moka (記憶體快取) 的優勢,並採用 Zero-Allocation (零記憶體分配) 封包解析技術,能在單節點提供十萬級別以上的 QPS 與極低延遲,同時確保資料不遺失。相信架設過網站的朋友都知道, Memcached 這種記憶體高速快取能讓網站服務效能翻倍, 但是 Memcached 只要遇上當機, 或是伺服器重啟的情況, 記憶體中的快取資料就消失了, 快取擊穿大量發生, 負載又落回資料庫。我曾想過市面上是否有能使用 Memcached 協定的磁碟快取, 既能保存資料在磁碟或SSD上, 又保持有相當的 QPS 追上 Memcached 超高性能? 於是本專案: rDiskcached 就這樣誕生了。
做為一名前端與後端的網站程式設計師, 伺服器軟體並不是我專研領域, 拜 AI 突飛猛進, 網路上也有許多重構 Memcached 的專案, 於是就讓 Gemini Pro 來幫我設計一款輕量型磁碟快取, 並且相容 Memcached 協定, 不過並沒有像 Memcached 這種偉大專案滿足各種需求, 僅以網站程式設計師角度來設計符合自己的需求, 在與 Gemini 來來回回的幾天裡, 終於做出還能用的 "rDickcached", 頭文字"r"不僅是使用 "Rust" 語言編寫, 也是我自己暱稱 "Ryan" 的意思, 本專案建議在測試環境使用, 在生產環境的話...我還未正式上線, 不過也算是第一步了!
rDickcached 系統需求
作業系統: Linux (Ubuntu / Debian / CentOS / RHEL 等)編譯環境: Rust 工具鏈 (Cargo)。若尚未安裝,請執行以下指令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rDickcached 下載位置
rDiskcached: Memcached 協定相容磁碟快取伺服器安裝與部署步驟
Step 1. 準備專案目錄從 Gist 下載檔案後,請建立標準的 Rust 專案目錄結構。Cargo 需要將主程式碼放在
src 資料夾內才能正確編譯:mkdir rdiskcache
cd rdiskcache
mkdir src
# 請將下載的檔案放置於對應位置:
# Cargo.toml -> 放在 rdiskcache/ 根目錄
# main.rs -> 放在 rdiskcache/src/ 目錄下
# rdiskcached.conf -> 放在 rdiskcache/ 根目錄 (稍後會搬移)
# rdiskcached.service -> 放在 rdiskcache/ 根目錄 (稍後會搬移)
Step 2. 編譯極致效能版本 (Release Build)
使用 Cargo 進行編譯。此過程會自動下載相依套件(如 tokio, sled, moka 等)並進行最高等級的效能最佳化:
cargo build --release
編譯完成後,執行檔將產生在 target/release/rdiskcached。
Step 3. 安裝執行檔與設定檔
將編譯好的執行檔與系統設定檔移動到 Linux 的標準目錄下:
# 1. 複製執行檔到系統執行路徑
sudo cp target/release/rdiskcached /usr/local/bin/
# 2. 複製設定檔到 /etc 目錄
sudo cp rdiskcached.conf /etc/
# 3. 建立資料庫預設儲存目錄
sudo mkdir -p /var/lib/rdiskcache
Step 4. 註冊 Systemd 系統服務
透過
rdiskcached.service 讓 Linux 系統接管程式,達成開機自動啟動與崩潰自動重啟:# 1. 將 service 檔案放入 systemd 目錄
sudo cp rdiskcached.service /etc/systemd/system/
# 2. 重新載入 systemd 設定
sudo systemctl daemon-reload
# 3. 啟動 rDiskcache 服務
sudo systemctl start rdiskcached
# 4. 設定開機自動啟動
sudo systemctl enable rdiskcached
驗證與測試
確認服務是否正常穩定地在背景運作:sudo systemctl status rdiskcached
(如果看到綠色的 Active: active (running) 就代表啟動成功!)
你可以立刻使用
telnet 或任何支援 Memcached 的客戶端程式進行連線測試:telnet 127.0.0.1 11211
連線後可以輸入
stats 查看伺服器即時狀態,或是輸入 version 查看目前版本。輸入 quit 即可離開。設定檔修改說明
如果需要調整記憶體大小、綁定 IP 或執行緒數量,請編輯/etc/rdiskcached.conf:sudo nano /etc/rdiskcached.conf
常用參數說明:
-m 256:設定最大可用記憶體 (MB)
-p 11211:設定監聽的 Port
-l 0.0.0.0:設定綁定的 IP 位址
-t 8:工作執行緒數量 (建議與 CPU 核心數一致)
修改完畢後,請重新啟動服務讓設定生效:
sudo systemctl restart rdiskcached




























































































