本文實(shí)例講述了PHP實(shí)現(xiàn)分布式memcache設(shè)置web集群session同步的方法。
php的session默認(rèn)是文件存儲(chǔ):
session.save_handler = filessession.save_path = "/var/lib/php/session"
當(dāng)做web集群,需要session同步時(shí),將session存到分布式memcache來達(dá)到共享同步是個(gè)不錯(cuò)的辦法
方法:
第1種:
vi /etc/php.ini
session.save_handler = memcachesession.save_path = "tcp://192.168.20.193:11211,tcp://192.168.20.194:11211"
第2種:
在php文件中使用ini_set函數(shù)進(jìn)行配置,適合無法修改配置文件的虛擬主機(jī)
<?php....ini_set("session.save_handler", "memcache");ini_set("session.save_path", "tcp://192.168.20.193:11211,tcp://192.168.20.194:11211");....?>
重啟web服務(wù)器
service httpd restart
查看phpinfo
測(cè)試
192.168.20.193中的login.php
<?phpsession_start();$_SESSION['login_time'] = time();$_SESSION['username'] = 'test2';$token=session_id();echo $token;//memache實(shí)現(xiàn)$mem = new Memcache();$mem->addServer('192.168.20.193',11211);$mem->addServer('192.168.20.194',11211);/*//memached實(shí)現(xiàn)$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));?><div><a href="http://192.168.20.194/user.php?token=<?php echo $token;?>" rel="external nofollow" target="_balnk">跳轉(zhuǎn)到194網(wǎng)站的個(gè)人中心</a></div>
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'];//獲取傳過來的tokenprint_r($mem->get($token));?><div><a href="http://192.168.20.193/user.php?token=<?php echo $token;?>" rel="external nofollow" target="_balnk">返回193網(wǎng)站的個(gè)人中心</a></div>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php緩存技術(shù)總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP錯(cuò)誤與異常處理方法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注