Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon d'implémenter le memcache distribué en PHP pour configurer la synchronisation des sessions du cluster Web

Explication détaillée de la façon d'implémenter le memcache distribué en PHP pour configurer la synchronisation des sessions du cluster Web

jacklove
jackloveoriginal
2018-06-27 17:58:501362parcourir

Cet article présente principalement la méthode PHP pour implémenter Memcache distribué pour configurer la synchronisation des sessions de cluster Web. Il analyse les compétences opérationnelles et les précautions associées à la configuration et à l'utilisation de PHP pour réaliser la synchronisation des sessions de cluster Web sous forme d'exemples. Les amis dans le besoin peuvent s'y référer. Suivant

L'exemple de cet article décrit comment PHP implémente le memcache distribué pour configurer la synchronisation des sessions du cluster Web.

La session PHP par défaut est le stockage de fichiers :

session.save_handler = files
session.save_path = "/var/lib/php/session"

Lorsque vous utilisez un cluster Web et avez besoin d'une synchronisation de session, stockez la session dans Memcache distribué est un bon moyen d'obtenir une synchronisation partagée

Méthode :

Type 1 :

vi /etc/php.ini

session.save_handler = memcache
session.save_path = "tcp://192.168.20.193:11211,tcp://192.168.20.194:11211"

Type 2 :

dans le fichier php Utilisez le ini_set fonction de configuration, adaptée aux hôtes virtuels qui ne peuvent pas modifier le fichier de configuration

<?php
....
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://192.168.20.193:11211,tcp://192.168.20.194:11211");
....
?>

Redémarrer le serveur Web

service httpd restart

Voir phpinfo

Tester login.php en 192.168.20.193

<?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>

user.php dans 192.168.20.194

<?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>

Vous pouvez Articles d'intérêt :

Explication de la fonction de découpe et de fusion de fichiers volumineux implémentée par PHP


Exemple d'algorithme de regroupement de mots simple implémenté par PHP


Explication complète d'un exemple de la classe d'opérations de base de données mongoDB implémentée par PHP


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn