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

PHP 搭配 Memcached 高速緩存:從基礎操作到實戰應用

     編輯:PHP 綜合知識

為什麼需要 Memcached?

PHP 處理大量資料請求時,頻繁存取資料庫會造成效能瓶頸。Memcached 以記憶體為基礎的 Key-Value 存儲,能大幅降低資料庫負載,提升回應速度。

環境準備

  • Linux/Windows 均支援,生產環境建議 Linux
  • 安裝 Memcached 服務端與 PHP memcache 擴展(非 memcached)

核心 API 操作範例

<?php
// 1. 建立連線
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211) or die("連線失敗");

// 2. 顯示版本
echo "Memcached 版本: " . $mem->getVersion() . "<br>";

// 3. 儲存字串 (key, value, flag, expire秒)
$mem->set('key1', 'This is first value', 0, 60);
echo "Get key1: " . $mem->get('key1') . "<br>";

// 4. 替換資料
$mem->replace('key1', 'This is replace value', 0, 60);
echo "Replace key1: " . $mem->get('key1') . "<br>";

// 5. 儲存陣列
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
print_r($mem->get('key2'));

// 6. 刪除單筆
$mem->delete('key1');
var_dump($mem->get('key1')); // false

// 7. 清空所有
$mem->flush();
var_dump($mem->get('key2')); // false

// 8. 關閉連線
$mem->close();
?>

程序式風格範例:計數器應用

<?php
$mc = memcache_connect('localhost', 11211);
$pn = $mc->get('pid');
echo "目前計數: $pn<br>";

if ($pn < 1) $pn = 1;
else $pn++;

$mc->set('pid', $pn, 0, 0); // 0 代表永不過期
memcache_close($mc);
?>

實戰應用場景建議

  1. 熱門商品資訊:商品詳情、庫存、價格緩存 5-30 分鐘
  2. 使用者 Session:集群環境下共享 Session 資料
  3. 頁面片段緩存:側邊欄推薦、排行榜等非即時區塊
  4. API 回應緩存:第三方介面調用結果暫存

注意事項

  • 資料序列化會自動處理,但資源型別(如資料庫連線)不可緩存
  • 記憶體不足時會依 LRU 策略淘汰舊資料
  • 關鍵業務資料建議「資料庫為主、緩存為輔」,緩存失效需能從 DB 重建
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved