PHP提升SESSION響應速度的方法有哪些

一、設置多級目錄存儲SESSIONphp

默認session的存儲目錄是1級目錄,若是用戶量比較大,session文件數量就比較大,咱們能夠設置目錄數爲2,使用2級目錄能夠提交查找和存取速度。不過這種方式對速度的提高通常不是很明顯,能夠經過修改php.ini,進而修改session存儲目錄數。html

1redis

session.save_path = "2;/tmp"cookie

二、將SESSION存儲到redis中session

php中的session默認是存儲在文件中的,支持redis存儲方式,由於redis的鍵值數據時存儲在內存中的,能夠提升session的存取速度。koa

1tcp

2函數

session.save_handler = redis測試

session.save_path = "tcp://127.0.0.1:6379"spa

三、及時釋放SESSION文件鎖

咱們在使用session時,須要先執行session_start()函數。

session_start()函數的做用以下:

判斷http請求是否包含名爲PHPSESSID的cookie,若是沒有則建立該cookie並寫入到http響應的頭文件。

經過PHPSESSID查找對應的session文件,以讀寫方式打開的文件,而後讀取裏面的數據到內存。

而後咱們通常會經過$_SESSION這個超全局變量,讀取或者設置session的值,咱們操做的時候,session的值都是保存在內存中的,默認在頁面執行完畢以後,纔會寫入到對應的文件中。

咱們經過下面的一段代碼測試這個過程:

SESSION執行過程分析:

1

2

3

4

5

6

7

include "session_function.php";

//session_function.php代碼在附錄

session_start();

$_SESSION['name']="koastal";

echo "<br/>html content<br/>";

var_dump($_SESSION);

echo "<br/>";

輸出結果:

1

2

3

4

5

6

7

8

open

read

html content

array (size=1)

  'name' => string 'koastal' (length=7)

shutdown

write

close

經過上面的例子能夠發現,在頁面執行的過程當中(頁面的執行過程是指將php文件解析爲對應的html文件的耗時,而不是用戶在該頁面上的停留時間),session文件是被鎖定的。

相關文章
相關標籤/搜索