首頁 >後端開發 >php教程 >PHP實作分散式memcache設定web集群session同步的方法詳解

PHP實作分散式memcache設定web集群session同步的方法詳解

jacklove
jacklove原創
2018-06-27 17:58:501443瀏覽

這篇文章主要介紹了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[&#39;login_time&#39;] = time();
$_SESSION[&#39;username&#39;] = &#39;test2&#39;;
$token=session_id();
echo $token;
//memache实现
$mem = new Memcache();
$mem->addServer(&#39;192.168.20.193&#39;,11211);
$mem->addServer(&#39;192.168.20.194&#39;,11211);
/*
//memached实现
$mem = new Memcached();
$servers = array(
 array(&#39;192.168.20.193&#39;, 11211, 33),
 array(&#39;192.168.20.194&#39;, 11211, 67)
);
$mem->addServers($servers);
*/
echo &#39;<hr>&#39;;
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(&#39;192.168.20.193&#39;,11211);
$mem->addServer(&#39;192.168.20.194&#39;,11211);
$token=$_GET[&#39;token&#39;];//获取传过来的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實作的大檔案切割與合併功能範例講解

PHP實作的簡單組詞演算法範例講解

PHP實作的mongoDB資料庫操作類別完整實例講解

#

以上是PHP實作分散式memcache設定web集群session同步的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn