Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ruft Memcache auf, um die Sitzung zu speichern

PHP ruft Memcache auf, um die Sitzung zu speichern

WBOY
WBOYOriginal
2016-08-08 09:24:07935Durchsuche

Wenn PHP Memcache aufruft, um die Sitzung auf die folgende Weise zu speichern, denken Sie daran, session.auto_start = 0 in

/usr/local/php/etc/php.ini auf 0 zu setzen, andernfalls Der Aufruf von Memcache zum Speichern der Sitzung hat keine Wirkung.

Der Grund ist: Wenn PHP die erste Zeile ausführt, wird die Sitzung automatisch gestartet, und der Standardwert sind Dateien, sodass die Sitzung standardmäßig über die Datei gespeichert wird und das später konfigurierte ini_set nutzlos ist .

//Sitzungseinstellungen

Methode 1:

Diese Methode wird in der Produktionsumgebung verwendet, es gibt kein Problem.

Fügen Sie am Anfang der Zeile der PHP-Codedatei einen Initialisierungsbefehl hinzu.

ini_set("session.save_handler", "memcache");

#Wenn Sie mehrere Memcache-Adressen konfigurieren müssen, trennen Sie diese einfach durch Kommas.

#ini_set("session.save_path", "tcp://127.0.0.1:11211,tcp://127.0.0.1:11212");

ini_set("session.save_path " ", "tcp://127.0.0.1:11211");

session_start();

Methode 2:

Diese Methode schreibt einen Memcache-Knoten für die Produktionsumgebung Die IP-Konfiguration der beiden Memcaches wurde jedoch nicht überprüft.

Direkt /usr/local/php/etc/php.ini festlegen

session.save_handler = memcache

session.save_path = "tcp://127.0 .0.1:11211"

set_session.php

######################## ## ###########################

ini_set( "session.save_handler ", "memcache");

ini_set("session.save_path", "tcp://10.12.4.25:11211,tcp://10.12.4.25:11212");
session_start() ;
$_SESSION['TEST3'] = time();
print $_SESSION['TEST3'];
print session_id();
?>

Nachdem wir über den Browser auf set_session.php zugegriffen haben, können wir über Telnet 10.12.4.25 11211 prüfen, ob der Sitzungswert wirklich existiert, und nachweisen, dass er tatsächlich nur auf einem der Memcache-Knoten gespeichert ist

get rtv10q183u28kmmtfpi0bd5nq6

################################# ##### #################

Experimentieren Sie, ob der Speicher auf mehrere Memcache-Knoten verteilt ist, nachdem Sie mehrere Memcache-Knoten konfiguriert haben

###### ################################################ #################

1. Memcache mit mehreren Knoten konfigurieren und ihnen dann Werte zuweisen, es wird festgestellt, dass sie verstreut sind und gespeichert werden auf mehreren Knoten

$memcache = new Memcache;
$memcache->addServer('10.12.4.25', 11211);
$memcache->addServer ('10.12.4.25', 11212);
$memcache->addServer('10.12.4.25', 11213);
for ($i = 0; $i < 20; $i++)
{
$memcache->set($i, $i."hehe", 0, 1000);
}
for ($i = 0; $i < 20; $i++)
{
$val = $memcache->get("$i");
echo "Get $i key1 value: " $val ."
n";
}
?>

Über get_memcache.php können Sie sehen, dass die Daten tatsächlich über mehrere Knoten verteilt sind.

echo '10.12.4.25 11211
';
$memcache = new Memcache;
$memcache->addServer('10.12.4.25', 11211 );
#$memcache->addServer('10.12.4.25', 11213);
for ($i = 0; $i < 20; $i++)
{
$val = $memcache->get("$i");
echo "Get $i key1 value: " $val . "
n";
}
echo '10.12.4.25 11212
';
$memcache = new Memcache;
$memcache->addServer('10.12.4.25', 11212);
für ($i = 0; $i < 20; $i++)
{
$val = $memcache->get("$i");
echo "Get $i key1 value: " . $val ."
n";
}
echo '10.12.4.25 11213
';
$memcache = new Memcache;
$memcache->addServer(' 10.12.4.25', 11213);
for ($i = 0; $i < 20; $i++)
{
$val = $memcache->get("$i");
echo "Get $i key1 value: " . $val Löschen Sie alle Memcache-Werte, weisen Sie sie dann neu zu und prüfen Sie, ob Probleme vorliegen. Stellen Sie fest, dass sie tatsächlich separat gespeichert sind.

clean_memcache.php

$memcache = new Memcache;

$memcache->connect('10.12.4.25', 11211);

$memcache->addServer('10.12.4.25', 11212);

$memcache->addServer('10.12.4.25', 11213);

#$memcache->addServer('10.12.4.25 ', 11214);
$memcache->flush(); 🎜>
Session.auto_start = 0 in /usr/local/php/etc/php.ini wird auf 0 gesetzt, andernfalls wird Memcache zum Speichern aufgerufen Die Sitzung wird nicht wirksam.

// Sitzungseinstellungen

ini_set("session.save_handler", "memcache");

#ini_set("session.save_path", "tcp://127.0.0.1:11211,tcp://127.0.0.1:11212");

ini_set("session.save_path", " tcp://127.0.0.1:11211");

session_start();

Das Obige stellt vor, wie PHP Memcache zum Speichern von Sitzungen aufruft, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Hallo-Modul schreibenNächster Artikel:Hallo-Modul schreiben