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

PHP 使用 Memcached 完整入門教學與範例

     編輯:PHP 綜合知識

環境安裝與設定

1. 安裝擴展套件

下載對應 PHP 版本的 php_memcache.dll(Windows)或透過 pecl install memcache(Linux)安裝。

2. 修改 php.ini 啟用擴展

extension=php_memcache.dll

重新啟動 Web Server(Apache/Nginx/PHP-FPM)使設定生效。

基礎操作範例

以下程式碼展示連線、寫入(字串、數值、陣列、物件)、讀取、更新、刪除等核心操作:

<?php
// 建立 Memcache 物件
$mem = new Memcache;

// 連線至伺服器 (IP, Port)
if (!$mem->connect('127.0.0.1', 11211)) {
    die('連線失敗!');
}

// --- 寫入資料 (set) ---
// 參數: key, value, flag(壓縮), expire(秒)

// 1. 寫入字串
$mem->set('key_str', 'beijing', MEMCACHE_COMPRESSED, 60);

// 2. 寫入數值
$mem->set('key_num', 100, MEMCACHE_COMPRESSED, 60);

// 3. 寫入陣列 (自動序列化)
$arr = ['bj', 'tj'];
$mem->set('key_arr', $arr, MEMCACHE_COMPRESSED, time() + 3600*24);

// 4. 寫入物件 (自動序列化)
class Dog { public $name; public $age; }
$dog = new Dog('小狗', 2);
$mem->set('key_obj', $dog, MEMCACHE_COMPRESSED, 60);

// --- 讀取資料 (get) ---
$val = $mem->get('key_arr');
var_dump($val); // 輸出陣列

// --- 更新資料 (replace) ---
// 僅當 key 存在時更新
$mem->replace('key_str', 'shanghai', MEMCACHE_COMPRESSED, 60);

// --- 刪除資料 (delete) ---
$mem->delete('key_num');

// 關閉連線 (腳本結束會自動釋放)
$mem->close();
?>

進階提示

  • 序列化處理: Memcache 會自動對非標量資料(陣列、物件)進行序列化,讀取時自動反序列化。若需自訂格式(如 JSON),請自行 json_encode/json_decode。
  • 資源型別不可存儲: 資料庫連線資源、檔案指標等資源型別 無法 直接存入 Memcached。
  • 壓縮常數: 使用 MEMCACHE_COMPRESSED 可自動壓縮大數據,節省記憶體與網路頻寬。
  • 持久連線: 使用 $mem->pconnect() 可建立持久連線,減少高併發下的連線開銷。

常見問題排查

  1. 連線失敗:檢查防火牆、Memcached 服務是否啟動、IP/Port 是否正確。
  2. 資料讀不到:確認 expire 時間未過期、key 名稱拼寫正確。
  3. 類別找不到:確認 php_memcache 擴展已正確載入 (php -m | grep memcache)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved