
- PHP 教程
- PHP - 首頁
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混雜
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期和時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 宇宙飛船運算子
- PHP 控制語句
- PHP - 決策機制
- PHP - If…Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do…While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - Traits
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET 和 POST
- PHP - 檔案上傳
- PHP - Cookie
- PHP - Session
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 淨化輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 程式碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try…Catch
- PHP - 除錯 Bug
- PHP - 針對 C 開發人員
- PHP - 針對 Perl 開發人員
- PHP - 框架
- PHP - Core PHP 與框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 預期
- PHP - use 語句
- PHP - 整數除法
- PHP - 已棄用的特性
- PHP - 已移除的擴充套件和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP - Memcache 函式
Memcache 模組可以為 Memcached 提供方便的過程式和麵向物件的介面,Memcached 是一個高效的快取守護程序,專門設計用於減少動態 Web 應用程式中的資料庫負載。
Memcache 模組還可以提供一個會話處理程式 (Memcache)。
有關 Memcached 的更多資訊,請訪問 » http://www.danga.com/memcached/。
安裝
此 PECL 擴充套件未包含在 PHP 中。新的版本、下載、原始檔、開發者資訊和 CHANGELOG 等附加資訊,可以在這裡找到:»https://pecl.php.net/package/memcache。
要使用這些函式,我們必須使用 --enable-memcache [= DIR] 選項編譯具有 memcache 支援的 PHP。我們可以選擇透過指定 --disable-memcache-session 來停用 memcache 會話處理程式支援。
Windows 使用者可以在 php.ini 中啟用 php_memcache.dll 來使用這些函式。我們需要從 »PHP 下載或 » https://php.net.tw/manual/en/install.pecl.windows.php 下載此 PECL 擴充套件的 DLL。
需求
Memcache 模組可以使用 » zlib 的函式來支援動態資料壓縮。安裝此模組需要安裝 Zlib。
資源型別
emcache 模組只使用一種資源型別 - 它是快取伺服器連線的連結識別符號。
使用 Memcache 擴充套件需要 PHP 4.3.3 或更高版本。
執行時配置
這些函式的行為可能取決於 php.ini 中的設定。
Memcache 配置選項
名稱 | 預設值 | 可更改 | 變更日誌 |
---|---|---|---|
memcache.allow_failover | "1" | PHP_INI_ALL | 自 memcache 2.0.2 起可用。 |
memcache.max_failover_attempts | "20" | PHP_INI_ALL | 自 memcache 2.1.0 起可用。 |
memcache.chunk_size | "8192" | PHP_INI_ALL | 自 memcache 2.0.2 起可用。 |
memcache.default_port | "11211" | PHP_INI_ALL | 自 memcache 2.0.2 起可用。 |
memcache.hash_strategy | "standard" | PHP_INI_ALL | 自 memcache 2.2.0 起可用。 |
memcache.hash_function | "crc32" | PHP_INI_ALL | 自 memcache 2.2.0 起可用。 |
session.save_handler | "files" | PHP_INI_ALL | 自 memcache 2.1.2 起支援 |
session.save_path | "" | PHP_INI_ALL | 自 memcache 2.1.2 起支援 |
memcache.protocol | ascii | >PHP_INI_ALL | 自 memcache 3.0.0 起支援 |
memcache.redundancy | 1 | >PHP_INI_ALL | 自 memcache 3.0.0 起支援 |
memcache.session_redundancy | 2 | >PHP_INI_ALL | 自 memcache 3.0.0 起支援 |
memcache.compress_threshold | 20000 | >PHP_INI_ALL | 自 memcache 3.0.3 起支援 |
memcache.lock_timeout | 15 | >PHP_INI_ALL | 自 memcache 3.0.4 起支援 |
有關 PHP_INI_* 常量的詳細說明,請參閱文件“可在何處設定配置設定”。
memcache.allow_failover 布林值 − 是否透明地故障轉移到其他伺服器以處理錯誤。
memcache.max_failover_attempts 整數 − 定義在設定和獲取資料時嘗試的伺服器數量。僅與 memcache.allow_failover 結合使用。
memcache.chunk_size 整數 − 資料將以這種大小的塊進行傳輸,設定較低的值需要更多網路寫入。如果注意到其他無法解釋的減速,請嘗試將此值增加到 32768。
memcache.default_port 字串 − 如果未指定其他埠,則連線到 memcached 伺服器時使用的預設 TCP 埠號。
memcache.hash_strategy 字串 − 控制在將鍵對映到伺服器時使用哪種策略。將此值設定為 consistent 以啟用一致雜湊,這允許在池中新增或刪除伺服器,而不會導致鍵重新對映。將此值設定為 standard 會導致使用舊策略。
memcache.hash_function 字串 − 控制在將鍵對映到伺服器時應用哪個雜湊函式,crc32 使用標準 CRC32 雜湊,而 fnv 使用 FNV-1a。
session.save_handler 字串 − 透過將此值設定為 memcache 來使用 memcache 作為會話處理程式。
session.save_path 字串 − 定義一個用逗號分隔的伺服器URL列表,用於會話儲存,例如 "tcp://host1:11211, tcp://host2:11211"。每個URL可以包含應用於該伺服器的引數,這些引數與 Memcache::addServer() 方法的引數相同。例如 "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
memcache.protocol 字串
memcache.redundancy 整數
memcache.session_redundancy 整數
memcache.compress_threshold 整數
memcache.lock_timeout 整數
基本用法
在這個例子中,一個物件被儲存到快取中,然後被檢索回來。物件和其他非標量型別在儲存之前會被序列化,所以不可能在快取中儲存資源(例如連線識別符號和其他)。
示例 1
<?php $memcache = new Memcache; $memcache->connect("localhost", 11211) or die ("Could not connect"); $version = $memcache->getVersion(); echo "Server's version: ".$version."<br/>\n"; $tmp_object = new stdClass; $tmp_object->str_attr = "test"; $tmp_object->int_attr = 123; $memcache->set("key", $tmp_object, false, 10) or die ("Failed to save data at the server"); echo "Store data in the cache (data will expire in 10 seconds) <br/>\n"; $get_result = $memcache->get("key"); echo "Data from the cache: <br/>\n"; var_dump($get_result); ?>
使用 memcache 會話處理程式
示例 2
<?php $session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,,tcp://$host:$port"; ini_set("session.save_handler", "memcache"); ini_set("session.save_path", $session_save_path); ?>
預定義常量
Memcache 常量
序號 | 名稱和描述 |
---|---|
1 | MEMCACHE_COMPRESSED (整數) 用於使用 Memcache::set()、Memcache::add() 和 Memcache::replace() 開啟動態資料壓縮。 |
2 | PMEMCACHE_HAVE_SESSION (整數) 如果此 Memcache 會話處理程式可用,則為 1,否則為 0。 |
3 | MEMCACHE_USER1 (整數) 用於使用 Memcache::set()、Memcache::add() 和 Memcache::replace() 開啟使用者定義的應用程式標誌。 |
4 | MEMCACHE_USER2 (整數) 用於使用 Memcache::set()、Memcache::add() 和 Memcache::replace() 開啟使用者定義的應用程式標誌。 |
5 | MEMCACHE_USER3 (整數) 用於使用 Memcache::set()、Memcache::add() 和 Memcache::replace() 開啟使用者定義的應用程式標誌。 |
6 | MEMCACHE_USER4 (整數) 用於使用 Memcache::set()、Memcache::add() 和 Memcache::replace() 開啟使用者定義的應用程式標誌。 |
Memcache 函式
以下是 Memcache 函式:
序號 | 函式和描述 |
---|---|
1 |
此函式可以將專案新增到伺服器。 |
2 |
此函式可以將 memcached 伺服器新增到連線池。 |
3 |
此函式可以關閉 memcached 伺服器連線。 |
4 |
此函式可以開啟 memcached 伺服器連線。 |
5 |
此函式可以開啟/關閉除錯輸出。 |
6 |
此函式可以遞減專案的數值。 |
7 |
此函式可以從伺服器刪除專案。 |
8 |
此函式可以重新整理伺服器上所有現有專案。 |
9 |
此函式可以從伺服器檢索專案。 |
10 |
此函式可以獲取池中所有伺服器的統計資訊。 |
11 |
此函式可以返回伺服器狀態。 |
12 |
此函式可以獲取伺服器的統計資訊。 |
13 |
此函式可以返回伺服器的版本。 |
14 |
此函式可以遞增專案的數值。 |
15 |
此函式可以開啟 memcached 伺服器持久連線。 |
16 |
此函式可以替換現有專案的數值。 |
17 |
此函式可以將資料儲存在伺服器上。 |
18 | Memcache::setCompressThreshold() 此函式可以啟用對大值的自動壓縮。 |
19 |
此函式可以在執行時更改伺服器引數和狀態。 |