Windows Server 安裝 WinCache 為 PHP 論壇加速後,訪問速度顯著提升,但後台修改用戶資料(如開通 VIP),前台頁面長時間仍顯示舊資訊。手動回收 IIS 應用程式池無效,唯有停止再啟動應用程式池才能恢復。
WinCache 的用戶緩存 將 PHP 變數、會話資料等緩存在共享記憶體中。資料庫已更新,但 PHP 讀取的是緩存舊值,導致頁面顯示過期資訊。回收應用程式池僅重置進程,共享記憶體緩存並未隨之清除,故無效;完全停止再啟動才釋放共享記憶體。
PHP 官方文檔提供 wincache_ucache_clear() 函數,可清空用戶緩存。具體操作:
wincache_ucache_clear() 並提示成功。wincache_ucache_clear() 或針對性刪除對應鍵 wincache_ucache_delete('user_'.$uid),確保下次請求讀到最新數據。php.ini 設定 wincache.ucache.ttl(預設 0 為永不過期),如設為 300 秒,緩存自動失效,減少髒讀窗口。