這篇文章主要介紹了PHP實現分散式memcache設定web集群session同步的方法,結合實例形式分析了php設定與使用memcache實現web集群session同步的相關操作技巧與注意事項,需要的朋友可以參考下
本文實例講述了PHP實作分散式memcache設定web集群session同步的方法。
php的session預設是檔案儲存:
session.save_handler = files session.save_path = "/var/lib/php/session"
當做web集群,需要session同步時,將session存到分散式memcache來要達到共享同步是個不錯的辦法
方法:
第1種:
vi /etc/php.ini
session.save_handler = memcache session.save_path = "tcp://192.168.20.193:11211,tcp://192.168.20.194:11211"
#第2種:
在php檔案中使用ini_set函數進行配置,適合無法修改設定檔的虛擬主機
<?php .... ini_set("session.save_handler", "memcache"); ini_set("session.save_path", "tcp://192.168.20.193:11211,tcp://192.168.20.194:11211"); .... ?>
重啟網頁伺服器
service httpd restart
查看phpinfo
測試
192.168.20.193中的login.php
<?php session_start(); $_SESSION['login_time'] = time(); $_SESSION['username'] = 'test2'; $token=session_id(); echo $token; //memache实现 $mem = new Memcache(); $mem->addServer('192.168.20.193',11211); $mem->addServer('192.168.20.194',11211); /* //memached实现 $mem = new Memcached(); $servers = array( array('192.168.20.193', 11211, 33), array('192.168.20.194', 11211, 67) ); $mem->addServers($servers); */ echo '<hr>'; print_r($mem->get($token)); ?> <p> <a href="http://192.168.20.194/user.php?token=<?php echo $token;?>" rel="external nofollow" target="_balnk">跳转到194网站的个人中心</a> </p>
192.168.20.194中的user.php
<?php $mem = new Memcache(); $mem->addServer('192.168.20.193',11211); $mem->addServer('192.168.20.194',11211); $token=$_GET['token'];//获取传过来的token print_r($mem->get($token)); ?> <p> <a href="http://192.168.20.193/user.php?token=<?php echo $token;?>" rel="external nofollow" target="_balnk">返回193网站的个人中心</a> </p>
#
以上是PHP實作分散式memcache設定web集群session同步的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!