session 共享的实现方式(PHP)

15 篇文章 0 订阅

最近正在研究负载均衡和web server的集群架构,其中有一点会涉及到web server集群中各主机的session如何共享的问题。

业界对于这个问题的解决大体会用以下三种方式:

1. 将session存入专门的一个数据库

2. 将session存入专门的一台session服务器的磁盘里

3. 将session存入专门的一台session服务器的内存里


对于这几个方案,各有优势,关键看你的系统的特性来决定选择什么方案吧。

我针对第三个方案做了一个demo,选择的是大名鼎鼎的memcache来做内存缓存session的服务器

各个web server端需要做一些配置工作,如下:

1. 打开php.ini配置文件

2. 修改这些内容

    session.save_handler = memcache                  (默认是files,改成memcache)

    session.save_path = "tcp://localhost:11211"    (memcache server的地址或者域名)

    session.cookie_domain = .test.com                   (将cookie的有效域设置成同一个域名,目的是为让各个web server对同一个客户端生成同一个SESSION ID)


暂时就是这些配置

测试一下吧:

session_start();

if (!isset($_SESSION['TEST1'])) {   

$_SESSION['TEST1'] = time();

}

$_SESSION['TEST2'] = time();

print $_SESSION['TEST1'];

print "<br><br>";

print $_SESSION['TEST2'];

print "<br><br>";

print session_id();

print "<br><br>";

$memcache = new Memcache;  

$memcache = memcache_connect('localhost', 11211);

var_dump($memcache->get(session_id()));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值