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

PHP 將 Session 存儲到 Memcached 的配置方法

     編輯:PHP 綜合知識

修改 php.ini(推薦,永久生效)

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

修改後重啟 PHP-FPM/Apache 即可生效。多台服務器可寫多個地址,用逗號分隔:tcp://host1:11211, tcp://host2:11211。

運行時動態設置(無權限修改 php.ini 時)

<?php
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', 'tcp://127.0.0.1:11211');
// 必須在 session_start() 之前調用
session_start();

// 正常使用 $_SESSION
$_SESSION['user_id'] = 123;
?>

注意: ini_set() 僅對當前腳本生效,不會修改配置文件,也不影響其他頁面。

Memcache vs Session 對比

特性MemcacheSession
數據狀態無狀態(Key-Value,跨用戶共享)有狀態(綁定特定用戶 Session ID)
主要目的緩解數據庫壓力、提速維持用戶會話狀態
生命周期由過期時間控制由 session.gc_maxlifetime 控制

安全性建議

  • 將 Memcached 服務部署在內網,防火牆禁止外部訪問 11211 端口。
  • 啟用 SASL 認證(需 memcached 1.4.3+ 並編譯支持)。
  • 避免存放敏感明文(密碼、Token),如必須存放請加密。

適合存入 Memcached 的數據

  • 變化頻繁、非強一致性要求的數據(如頁面片段緩存、計數器)。
  • 非關鍵業務數據、可重新計算的數據。
  • 安全性要求較低的公開數據。

PHP 7+ 環境提示

PHP 7 建議使用 memcached 擴展(而非舊 memcache),配置項為:

session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved