由于PHP 实现session的机制 默认是利用把信息储存在文件里的,这就是涉及到读取文件
需要保证一定安全性所以需要在读写的时候锁文件,如果不及时解锁,如程序的业务过程较长就会导致后面需要再session时就会有个时间过程,就是说session阻塞了。
这种问题就是在同域下的程序文件执行下,如果需要session值时也会导致时间等待
(a.php 设置session值)(b.php 获取session)
当session_start();开启时,这个会话就开启了如果需要结束,需要手动 ,用到session_write_close函数或session_commit函数
代码示例:
<?php session_start(); $_SESSION['name'] = 'yangshiyi'; sleep(8); var_dump($_SESSION['name']);
上面代码需要8秒才能执行$_SESSION['name'],如果其他页面正好用到也会等8秒
写在同一个文件的不同的session值,同样会阻塞
需要如此解决了:
<?php session_start(); $_SESSION['name'] = 'yangshiyi'; session_commit(); sleep(8); var_dump($_SESSION['name']);
如果用Redis作为媒介不用考虑阻塞,但需要考虑Redis连接数过小的问题
标签:文件,需要,Redis,阻塞,session,PHP From: https://www.cnblogs.com/yangshiyi/p/16842969.html