Heim > Artikel > Backend-Entwicklung > PHP ruft Memcache auf, um die Sitzung zu speichern
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->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.