PHP
·
发表于 5年以前
·
阅读量:8393
总的感觉php的session功能基本上还能用一用,还算方便,省了很多自己处理
cookie的麻烦事情。php的session管理还是基于文件的,默认的是在/tmp目录
下生成一个和session id同名的session文件,在这个文件里保存register的
session data。session有生存期,在/usr/local/lib/php.ini里可以设置。
效率应该算马马虎虎了,毕竟还是要文件操作,虽然是/tmp的。对于服务量很
大的应用会在/tmp里生成很多session文件,分特。。。
对于分布式应用呢?几台web server一起服务?招倒是有,session文件的目录
是可配置的,把所有的session文件搞到一个共享的nfs目录就完事了。但是php
生成唯一文件的时候有没有考虑过nfs的特殊处理?我没仔细去看源码,估计会
出问题,虽然几率很小...
倒是可以做个session keeper的damon,session数据可以通过hash表的方式存
贮在内存里,以udp服务方式(效率高,lan里面包丢失率小)完成session的生
成,检索,结束,取置session变量等操作,这样多台web server可以共享
session信息。服务端和客户端的函数我都做了,现在问题是怎样把客户端的函
数加到php里面,或者php对动态库函数调用的支持怎么样,这些东西manual里
面都很不详尽,没有相关的例子。
BTW:由于语法的不严格,php的函数返回容易造成二义性,比如strpos,没有
匹配返回0,但是匹配的position可能是0的,faint~...