1、設定多層目錄儲存SESSION
預設session的儲存目錄是1級目錄,如果用戶量比較大,session檔案數量就比較大,我們可以設定目錄數為2,使用2級目錄可以提交查找和存取速度。不過這種方式對速度的提升一般不是很明顯,可以透過修改php.ini,進而修改session儲存目錄數。
session.save_path = "2;/tmp"
2、將SESSION儲存到redis中
#php中的session預設是儲存在檔案中的,支援redis儲存方式,因為redis的鍵值資料時儲存在記憶體中的,可以提高session的存取速度。
session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379"
3、及時釋放SESSION檔案鎖定
#我們在使用session時,需要先執行session_start()
函數。
session_start()函數的功能如下:
判斷http請求是否包含名為PHPSESSID的cookie,如果沒有則建立該cookie並寫入到http回應的頭文件。
透過PHPSESSID找出對應的session文件,以讀寫方式開啟的文件,然後讀取裡面的資料到記憶體。
然後我們通常會透過$_SESSION這個超全域變量,讀取或設定session的值,我們操作的時候,session的值都是保存在記憶體中的,預設在頁面執行完畢之後,才會寫入對應的文件中。
我們透過下面的一段程式碼測試這個過程:
SESSION執行過程分析:
include "session_function.php"; //session_function.php代码在附录 session_start(); $_SESSION['name']="koastal"; echo "<br/>html content<br/>"; var_dump($_SESSION); echo "<br/>";
輸出結果:
open read html content array (size=1) 'name' => string 'koastal' (length=7) shutdown write close
透過上面的範例可以發現,在頁面執行的過程中(頁面的執行過程是指將php檔案解析為對應的html檔案的耗時,而不是使用者在該頁面上的停留時間),session檔案是被鎖定的。
推薦教學:PHP影片教學
php中文網學習專題:php session(包含圖文、影片、案例)
以上是PHP提高SESSION響應速度的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!