使用 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 数据来说也不是很大的问题。