关于 session 文件的销毁!

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

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

session_destroy 是个回收 session 文件的方法,但是很多情况下都是不能 destroy 的。
466934322
2016-07-26 21:14:55 +08:00
@moult
@b821025551b 说出来,让我学习一下,新人求经验
caola
2016-07-27 00:24:38 +08:00
php session 完全可以使用 redis 来存放,默认过期时间为 1400 秒,过期的 session 会自动被清理掉了
nightspirit
2016-07-27 10:12:52 +08:00
unset 和 session_unset 按手册说的确实只是释放变量 可以的
aru
2016-07-27 13:05:25 +08:00
redis/memcache 是最佳选择
NoBrain
2016-07-27 17:35:45 +08:00
@b821025551b 酸爽何来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/295101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX