Heim >Backend-Entwicklung >PHP-Tutorial >Eine Erklärung, wie Sitzungsdaten im Memcache gespeichert werden
In diesem Artikel wird beschrieben, wie die Daten in der Sitzung im Memcache gespeichert werden. Viele Schüler wissen möglicherweise nicht viel darüber, wie die Daten in der Sitzung im Memcache gespeichert werden im Memcache. Gehe zum Memcache!
Speichern Sie die Daten der Sitzung im Memcache
Sitzung Die Daten werden standardmäßig in der Datei Datei gespeichert
, aber wir können die Konfiguration von php ändern, um sie an anderer Stelle zu speichern
(1), öffnen Sie D:lampphp/php.ini. session.save_handler = files ist aktiviert, kommentieren Sie es aus
Speicherpfad für Sitzungsinhalte, fügen Sie die rote Linie hinzu Dieser Satz
Ich habe es geändert und getestet
Session.php
<?php session_start(); $_SESSION['name']='whj'; ?>
Get_session.php
<?php session_start(); $name=$_SESSION['name']; echo $name; ?>
AusgabewhjRichtig
(2), Aber So erhalten Sie die Variable session nicht mehr über das Attribut name, , sondern über session_id zum Speichern von
session_id:Wenn der Browser auf den Server zugreift, weist der Server dem Browser die session_id zu und sucht dann den entsprechenden Wert durch session_id
Beispiel:
session_start(); $_SESSION['age']='whjwhj'; $sess_id=session_id(); var_dump($sess_id); //运行出来是string(26) "dmkppdo0qhbkq099fo608an383",在telnet中运行get dmkppdo0qhbkq099fo608an383的出age|s:6:"whjwhj";
Wenn Sie keine Berechtigung zum Ändern habenphp machen?
ini_set() Sie können einige Konfigurationen von php in der php-Datei festlegen
Sicherheitsproblem: Jetzt kann jeder auf meinen Memcache zugreifen, andere können auch auf mein Telnet 192.168.2.200,
zugreifen Lösung: Firewall
Die obige Sitzung wurde verwendet, als die php.ini-Konfigurationsdatei geändert wurde. Was jetzt getan wird, ist: Es gibt keine Sie müssen die Konfigurationsdatei ändern und direkt am Anfang der Datei hinzufügen:
ini_set('session.save_handler','memcache'); ini_set('session.save_path','tcp://127.0.0.1:11211');告诉它是用session保存到memcache的
Beispiel:
Ini_session.php
<?php ini_set('session.save_handler','memcache'); ini_set('session.save_path','tcp://127.0.0.1:11211'); session_start(); class Hot{ public $name; public $color; public function __construct($name,$color){ $this->name=$name; $this->color=$color; } } $hot=new Hot('xiaobei','white'); $_SESSION['hot']=$hot; ?>
Get_ini_session.php
<?php ini_set('session.save_handler','memcache'); ini_set('session.save_path','tcp://127.0.0.1:11211'); session_start(); class Hot{ public $name; public $color; public function __construct($name,$color){ $this->name=$name; $this->color=$color; } } $hot=$_SESSION['hot']; var_dump($hot); ?>
7 , Memcache:
Neustartmemcached , ein Neustart des Betriebssystems führt zum Verschwinden aller Daten. Darüber hinaus werden ungenutzte Caches automatisch gelöscht, nachdem die Inhaltskapazität den angegebenen Wert erreicht hat, basierend auf dem LRU (Least Recent Used) -Algorithmus.
Wenn Sieexpire auf 0 setzen, bedeutet dies, dass es nie abläuft, bis die Maschine neu gestartet oder der Dienst neu gestartet wird
Verwandte Artikel: Einführung in PHP-Sitzungssteuerungssitzung und Cookies
Das obige ist der detaillierte Inhalt vonEine Erklärung, wie Sitzungsdaten im Memcache gespeichert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!