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文件是被锁定的。

相关文章
相关标签/搜索