使用 memcache 来作 多机session 共享存储

在程序中使用 memcache 来作 session 存储,用例子测试一下:

 1 <?php
 2 session_start();
 3 if (!isset($_SESSION['TEST'])) {
 4     $_SESSION['TEST'] = time();
 5 }
 6 
 7 $_SESSION['TEST3'] = time();
 8 
 9 print $_SESSION['TEST'];
10 print "<br><br>";
11 print $_SESSION['TEST3'];
12 print "<br><br>";
13 print session_id();
14 ?>

 

用 sessionid 去 memcached 里查询一下:

1 <?php
2 $memcache = memcache_connect('localhost', 11211);
3 var_dump($memcache->get('19216821213c65cedec65b0883238c278eeb573e077'));
4 $memcache->set('aaaa', 'hello everyone');
5 var_dump($memcache->get('aaaa'));
6 ?>

会有看到

string(37) "TEST|i:1177556731;TEST3|i:1177556881;"

这样的输出,证明 session 正常工作。

用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。

posted @ 2012-07-03 15:15  subsir  阅读(278)  评论(0编辑  收藏  举报