Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Memcache 與 Memcached 完整安裝教學:從原理區分到 PHP 擴展部署與效能實測

編輯:關於伺服器

核心概念釐清:三個名詞的關係

名詞角色說明
Memcached (服務端)Daemon 進程運行於伺服器,管理共享記憶體 HashTable,接受客戶端連線操作
Memcache (專案名)系統總稱高效能分散式記憶體快取系統專案名稱,易與 PHP 擴展混淆
php_memcache (PHP 擴展)客戶端驅動PHP 連接 Memcached 服務端的擴展模組,類似 mbstring、eAccelerator

結論:要使用快取功能,必須同時安裝 Memcached 服務端 + PHP memcache 擴展。

第一階段:安裝 PHP memcache 擴展

# 以 PHP 安裝於 /usr/local/php 為例
cd /usr/local/src
wget https://pecl.php.net/get/memcache-2.2.5.tgz
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
/usr/local/php/bin/phpize
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
make && make install

修改 php.ini 加入擴展

# 找到 php.ini 位置
find / -name php.ini

# 在 [Zend] 區段前加入
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension=memcache.so

重啟 Web 服務驗證

/etc/init.d/httpd restart
# 或 systemctl restart php-fpm (PHP-FPM 模式)
# 用 phpinfo() 確認 memcache 區塊出現

第二階段:安裝 Memcached 服務端

1. 安裝依賴 libevent

# CentOS/RHEL
yum install libevent-devel

# 或原始碼安裝
cd /usr/local/src
wget https://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12
./configure --prefix=/usr/local/libevent
make && make install

2. 安裝 Memcached

cd /usr/local/src
wget https://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
tar zxvf memcached-1.4.4.tar.gz
cd memcached-1.4.4
./configure --prefix=/usr/local/memcached
make && make install

3. 啟動與設定開機自啟

# 啟動:分配 32MB 記憶體,綁定 127.0.0.1:11211,以 root 執行
/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root

# 寫入開機自啟
echo "/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

參數說明速查

參數含義建議值
-dDaemon 模式背景執行必加
-m記憶體上限 (MB)視記憶體大小,建議 64-512MB
-l監聽 IP127.0.0.1 (僅本機) 或 0.0.0.0 (全介面)
-p監聽埠11211 (預設)
-u執行使用者非 root 使用者更安全
-c最大連線數1024 (預設)

效能實測對比 (Discuz! X1 無負載環境)

狀態處理時間查詢數備註
未啟用快取0.038893 秒2 queries基準值
啟用 Memcache0.008383 秒2 queries, Memcache On提升 ~4.6 倍

注意:VPS 環境下效果可能不如 eAccelerator (Opcode 快取) 明顯。Memcache 適合「跨請求、跨程序、分散式」資料共享場景;單機 PHP 加速首選 Opcode 快取 (OPcache/APCu/eAccelerator)。

常見問題排查

  • PHP 找不到 memcache.so:確認 extension_dir 路徑正確、檔案存在、權限可讀
  • 連線失敗:檢查 Memcached 進程存活、防火牆 11211 埠、IP 綁定設定
  • 資料不一致:多台 Memcached 需用一致性雜湊 (Consistent Hashing) 客戶端庫
Copyright © Windows教程網 All Rights Reserved