一、設置多級目錄存儲SESSIONphp
默認session的存儲目錄是1級目錄,若是用戶量比較大,session文件數量就比較大,咱們能夠設置目錄數爲2,使用2級目錄能夠提交查找和存取速度。不過這種方式對速度的提高通常不是很明顯,能夠經過修改php.ini,進而修改session存儲目錄數。html
1redis |
|
二、將SESSION存儲到redis中session
php中的session默認是存儲在文件中的,支持redis存儲方式,由於redis的鍵值數據時存儲在內存中的,能夠提升session的存取速度。koa
1tcp 2函數 |
|
三、及時釋放SESSION文件鎖
咱們在使用session時,須要先執行session_start()
函數。
session_start()函數的做用以下:
判斷http請求是否包含名爲PHPSESSID的cookie,若是沒有則建立該cookie並寫入到http響應的頭文件。
經過PHPSESSID查找對應的session文件,以讀寫方式打開的文件,而後讀取裏面的數據到內存。
而後咱們通常會經過$_SESSION這個超全局變量,讀取或者設置session的值,咱們操做的時候,session的值都是保存在內存中的,默認在頁面執行完畢以後,纔會寫入到對應的文件中。
咱們經過下面的一段代碼測試這個過程:
SESSION執行過程分析:
1 2 3 4 5 6 7 |
|
輸出結果:
1 2 3 4 5 6 7 8 |
|
經過上面的例子能夠發現,在頁面執行的過程當中(頁面的執行過程是指將php文件解析爲對應的html文件的耗時,而不是用戶在該頁面上的停留時間),session文件是被鎖定的。