跨服务器跨域名SESSION解决方案
跨服务器跨域名SESSION解决方案
我们的产品有很大访问量,网友数量相当多啊!速度也变的缓慢
那么怎么办?怎么好解决那!
将多台服务器连接,这些服务器一起分担同样的应用和数据库计算任务,改善关键大型应用的响应时间。这是一个很好的方式啊!
产品MM Joe ,我正在给老板演示功能,为什么登录第一次可以登录,第二次却还让我重新登陆那!这是你在开玩笑吗?你可能要开始去逛逛https://www.360docs.net/doc/dc15341095.html,(智联招聘)
好吧!我承认设计中有一点小疏失。OMG.可能服务器集群,SESSION 没有共享问题。我会很好处理的。自己心里想:太狠了。要辞我。等哥发财的.研发人员
如何来解决。跨服务器,跨域名的SESSION共享那~?
对于跨服务器跨域名的SESSION解
决方案:
1.将SESSION存储数据库来做。
2.将session存储在MEMCACHE
来做
3.服务器做一个NFS共享,来解决
SESSION共享问题(这个不太常用,
因为他自己没有回收机制。只能我
们自己写SHELL之类东东来删除过
期的SESSION,比较悲剧)
用数据库存储session
(考虑下有啥缺点)
首先:修改我们PHP配置文件PHP.INI.
可以通过修改php.ini文件的session.save_handler设置来改变Session的保存方式。
默认为session.save_handler = files,必须将其修改为session.save_handler = user,即变为用户自定义方式。(当然我们也可以用ini_set来设置)
给大家介绍一个函数。
session_set_save_handler
说明:
bool session_set_save_handler ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc )
这些参数都代表着方法。(也就是自定义方法)
open:打开session
close:关闭session
read:读取session
write:写入session
destroy :定义删除Session信息
gc : 定义自动删除过期的Session信息
返回值
如果成功则返回TRUE,失败则返回FALSE。
下面开始建立表.
建立表表结构;sesskey是主键
介绍下具体代码应用;请看session.php.
分析下:session_set_save_handler ( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc )
这里方法定义规则。
OPEN:打开session.