zoukankan      html  css  js  c++  java
  • PHP提高SESSION响应速度的方法

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

  • 相关阅读:
    JS—图片压缩上传(单张)
    vue 使用jssdk分享
    微信JS-SDK选择图片遇到的坑
    手把手教你实现一个微信自动回复机器人
    SSH实现远程控制
    使用Apache服务部署静态网站
    Rhel7安装及网卡、yum、vmtools配置和修改主机名
    基础工具之消息队列、线程池、缓冲区抽象、事件循环和日志实现
    I/O多路复用方案
    Java按字节截取字符串(GBK编码、UTF-8编码实现)
  • 原文地址:https://www.cnblogs.com/zzz2000/p/12632100.html
Copyright © 2011-2022 走看看