wincache 各个参数详解和源码下载

亲啊嘴金,发布于:2010-08-01 09:55:50 | 意见领袖看法:10个 |813 个浏览
在Windows Cache Extension 安装完成后,您就可以到php.ini 中设定Windows Cache Extension 的相关系统设定值了,设定方式与其他PHP Extensions 设定相同,都是key=value 对的方式,例如下方的设定:
[wincache]
wincache.filecount

WINcache 源码1.1.0 beta2 源码 //pecl.php.net/package/WinCache/1.1.0beta2 下载。
目前可以在php.ini 中设定的Windows Cache Extension 设定值有:

設定值說明預設值
wincache.fcenabled啟用檔案快取。1
wincache.fcenabledfilter要使用檔案快取的 IIS 站台識別碼,若有多組時以逗號分隔。NULL
wincache.fcachesize檔案快取的最大記憶體使用量(MB)24
wincache.fcndetect是否要啟用檔案變更偵測(在 Opcode Cache 時會判斷檔案是否有變更而清除 Opecode Cache)。1
wincache.maxfilesize可放進快取的最大單一檔案大小(KB)256
wincache.ocenabled是否啟用 Opcode Cache1
wincache.ocenabledfilter要使用 Opcode Cache 的 IIS 站台識別碼,若有多組時以逗號分隔。NULL
wincache.ocachesizeOpcode Cache 的最大記憶體使用量(MB)96
wincache.filecount定義預期要快取的最大檔案數量,可在 PHP 初始化時預先配置好,但若實際超出此數量時,PHP 會重新配置。4096
wincache.chkinterval定義 PHP 檢查快取的週期(秒)。30
wincache.ttlmax設定快取在不使用時,存留的最長時間(秒)。1200
wincache.enablecli設定是否啟用指令列(Command Line)模式0
wincache.ignorelist設定哪些檔案不列入快取,若有多檔時,要使用管線符號”|”來分隔。NULL
wincache.namesalt設定一個 salt 值以避免使用者快取時設定的 key 值有碰撞的現象。NULL
wincache.ucenabled是否啟用使用者快取。1
wincache.ucachesize設定使用者快取的最大記憶體使用量(MB)。8

設定完後都要重新回收PHP應用程式的集區,或是重新啟動 IIS 才會生效。

 

Windows Cache Extension APIs for PHP

若 PHP 開發人員想要利用 Windows Cache Extension for PHP 快取應用程式資料時,Windows Cache Extension 有提供數組 API 可供開發人員與 Windows Cache Extension 互動,包含儲存快取資料、取得系統的快取狀態等。

1. 將 session 存放到 Windows Cache 中。

在 PHP 的預設模式中,session 資料是儲存在檔案中,Windows Cache Extension for PHP 開放一個設定,讓 PHP 可以將 session 儲存到記憶體中,以加快 Session 存取的速度,只要修改 php.ini 中的 session.save_handler 即可:
[Session]
; Headler used to store/retrieve data.
; session.seve_handler = files <- original configuration
session.save_handler = wincache <- apply session store into Windows Cache Extension

Windows Cache Extension 針對 Session 的轉存功能目前在 1.1 版以上才支援。

 

2. 呼叫Windows Cache Extension API

Windows Cache Extension 提供了下列 20 餘組的 API 可供開發人員使用:

函數類型說明
wincache_fcache_fileinfo 取得快取在記憶體中的檔案資訊。
wincache_fcache_meminfo 取得檔案快取的記憶體使用量。
wincache_lock 在指定的 key 上使用互斥鎖定。
wincache_ocache_fileinfo 取得在 Opcode Cache 中的檔案資訊。
wincache_ocache_meminfo 取得 Opcode Cache 的記憶體使用量。
wincache_refresh_if_changed 更新已快取檔案的快取內容。
wincache_rplist_fileinfo 取得相對路徑快取的資訊。
wincache_rplist_meminfo 取得相對路徑快取的記憶體使用量。
wincache_scache_info 取得快取在記憶體中的 session 的資訊。
wincache_ucache_add 在使用者快取中加入項目(如果 Key 不存在的話)。
wincache_ucache_cas 在使用者快取中更新快取中現有的資料。
wincache_ucache_clear 清空使用者快取的內容。
wincache_ucache_dec 減少指定 Key 的快取值。
wincache_ucache_delete 自使用者快取中刪除快取項目。
wincache_ucache_exists 檢查變數是否已存在於快取中。
wincache_ucache_get 取得儲存在快取中的變數值。
wincache_ucache_inc 增加指定 Key 的快取值。
wincache_ucache_info 取得儲存在使用者快取中的資料資訊。
wincache_ucache_meminfo 取得使用者快取的記憶體使用量。
wincache_ucache_set 在使用者快取中加入項目(如果 Key 已存在的話)
wincache_unlock 釋放在指定 Key 上的互斥鎖定。