V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
466934322
V2EX  ›  PHP

关于 session 文件的销毁!

  •  
  •   466934322 · 2016-07-26 19:33:13 +08:00 via Android · 4461 次点击
    这是一个创建于 3077 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚刚在 tp 群里聊天,聊着聊着,群友看了我的代码说:大流量的网站的话用完 session 的话要清理点 session !而我百度得知 seesion 过多会增加服务器负载。当流量过大的时候网站就坑了,我找到 tp 的 session 销毁上面是直接使用 unset !而网上有些说法是 unset 是销毁变量, session_unset 也是!使用完成如果还想要删除文件的话还要 session_destroy();
    我现在也不敢确定 unset 是否可以胜任大流量销毁 session ,所以特来求大牛普及
    11 条回复    2016-07-27 17:35:45 +08:00
    kfll
        1
    kfll  
       2016-07-26 19:40:31 +08:00   ❤️ 1
    session 与服务器负载: http://stackoverflow.com/a/17558888
    unset 与 session_unset 与 session_destroy: http://php.net/manual/en/function.session-unset.php
    466934322
        2
    466934322  
    OP
       2016-07-26 19:53:36 +08:00 via Android
    @kfll 虽然只能看懂个别单词,但还是要谢谢!因为我明天可以用电脑翻译出来
    aprikyblue
        3
    aprikyblue  
       2016-07-26 20:27:10 +08:00
    只能看懂个别单词,英语是有多差。。

    这个可以切换到中文语言。。
    http://php.net/manual/zh/function.session-unset.php
    466934322
        4
    466934322  
    OP
       2016-07-26 20:28:09 +08:00 via Android
    @aprikyblue 高中混了三年,出门做工人,然后转行做程序
    b821025551b
        5
    b821025551b  
       2016-07-26 20:31:04 +08:00
    遥想当年刚学 php ,用户退出用的 session_destroy ,那酸爽。。。
    moult
        6
    moult  
       2016-07-26 20:40:15 +08:00   ❤️ 1
    1 、 session 的负载,在于 session 是以文件形式存储在服务器硬盘上的,众所周知,服务器硬盘都是有最大文件数的,当 session 文件太多,就会达到最大文件数,就出问题了。
    2 、清理 session 的话, PHP 底层会有一个自己清理的方法,但是如果文件数很多的话,光找过期的 session 文件就要很久,更何况找到之后还要删除它们。
    3 、如果网站访问量大的话, session 建议直接放到 memcache 或者 redis 里面, session 文件只是多,容量很小的。如果嫌弃占内存那就放到 mysql 里面吧。
    以上是个人理解的 session 过多给服务器带来的负担。

    session_destroy 是个回收 session 文件的方法,但是很多情况下都是不能 destroy 的。
    466934322
        7
    466934322  
    OP
       2016-07-26 21:14:55 +08:00 via Android
    @moult
    @b821025551b 说出来,让我学习一下,新人求经验
    caola
        8
    caola  
       2016-07-27 00:24:38 +08:00   ❤️ 1
    php session 完全可以使用 redis 来存放,默认过期时间为 1400 秒,过期的 session 会自动被清理掉了
    nightspirit
        9
    nightspirit  
       2016-07-27 10:12:52 +08:00
    unset 和 session_unset 按手册说的确实只是释放变量 可以的
    aru
        10
    aru  
       2016-07-27 13:05:25 +08:00 via iPhone
    redis/memcache 是最佳选择
    NoBrain
        11
    NoBrain  
       2016-07-27 17:35:45 +08:00
    @b821025551b 酸爽何来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2710 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:32 · PVG 20:32 · LAX 04:32 · JFK 07:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.