Dieser Artikel stellt hauptsächlich vor, wie man den Sitzungsspeichermechanismus in PHP umschreibt. Jetzt kann ich ihn mit Ihnen teilen.
Sitzungsdatenbereich
wird standardmäßig im temporären Verzeichnis des Server-Betriebssystems in Form einer Datei gespeichert!
Wenn zu viele Sitzungsdatenbereiche vorhanden sind, verlangsamt die Speicherung in Form von Dateien den Vorgang. Der Overhead beim Lesen und Schreiben der Festplatte (E/A, Eingabe/Ausgabe) ist sehr hoch.
In tatsächlichen Projekten werden andere Methoden verwendet, um Sitzungsdaten schneller zu speichern. Typische Methoden: Datenbank, Speicher.
Nehmen Sie zur Erläuterung die Datenbankspeicherung: Sitzungsdaten werden in der Datenbank gespeichert!
Schreiben Sie einfach die Operationen um, die sich direkt auf den Sitzungsdatenbereich beziehen:
Die grundlegendsten sind nur 2: Lesen und Schreiben!
1: Definieren Sie zwei Funktionen, die das Lesen und Schreiben abschließen können.
Zweitens: Informieren Sie den Sitzungsmechanismus, benutzerdefinierte Lese- und Schreibfunktionen zu verwenden, wenn Lesen und Schreiben erforderlich sind.
Empfehlungen zu verwandten Themen: PHP-Sitzung (einschließlich Bilder, Videos, Fälle)
Informieren Sitzungsmechanismus, Wenn lesen und schreiben muss, verwendet benutzerdefinierte Lese- und Schreibfunktionen, um
Session_set_save_handler( 开始函数,结束函数,读函数,写函数,删除函数,GC函数 );
$_SESSION
Sitzungstabelle erstellenIn dieser Sitzung ist jeder Datensatz ein Sitzungsdatenbereich, der einer ursprünglichen Sitzungsdatei entspricht. Tabellenstruktur:
Session_destroy();
Garbage-Collection-Vorgang: sessGC()
Müll: Veralteter Sitzungsdatenbereich auf dem Server. , Wie erkennt man Müll? Wenn ein Sitzungsdatenbereich länger als einen bestimmten Zeitraum (der letzte Schreibvorgang) nicht verwendet wurde, wird er als Mülldaten betrachtet. Der zeitkritische Punkt: Standard 1440s. Konfigurierbar:
Mit der letzten Schreibzeit können Sie feststellen, ob es sich um Müll handelt
Sie müssen ein Feld hinzufügen, um die letzte Schreibzeit aufzuzeichnen.
Aktualisieren Sie beim Schreiben dieses Feld:
sessWrite();
Urteilsbedingung: Abgelaufen
Last_write < Aktuelle Zeit -1440
Während des session_start()-Prozesses, wenn der Sitzungsmechanismus aktiviert ist: Es besteht die Möglichkeit, Garbage-Collection-Vorgänge durchzuführen. Nach der Ausführung werden alle abgelaufenen Garbage-Data-Bereiche gelöscht.
Die Standardwahrscheinlichkeit beträgt 1/1000.
Sie können die Wahrscheinlichkeit einstellen:
Möglichkeit:
Basis (Divisor):
Wahrscheinlichkeitstest anpassen:
Es wird empfohlen, die Anpassung während des Skriptzyklus durchzuführen, die Funktion ini_set() zu verwenden und sie abzuschließen, bevor der Sitzungsmechanismus geöffnet wird:
Implementierung sessGC()
Der Sitzungsmechanismus von PHP übergibt die maximale Gültigkeitsdauer als Parameter!
Initialisierungsarbeiten
werden garantiert zuerst ausgeführt. Vervollständigen Sie den anfänglichen Code in sessBegin:
Initialisieren Sie beispielsweise die Datenbankverbindung:
Abschlussarbeit
True zurückgeben;
Session_set_save_handler() steht vor session_start ( ) heißt.
Sitzung nicht automatisch öffnen! php.ini: session.auto_start = 0
wird vom PHP-Speicher verwendet Mechanismus:
Abschließend wird empfohlen, die obige Konfiguration auf Benutzer zu ändern: Dies zeigt die Benutzeranpassung an!
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
So durchsuchen Sie Ordner, um den Bildverzeichnisnamen und den Dateinamen über PHP zu erhalten
Anleitung Lösen Sie das PHP-Array-Referenzproblem, das nach jeder foreach-Schleife übrig bleibt
Das obige ist der detaillierte Inhalt vonSo schreiben Sie den Sitzungsspeichermechanismus in PHP neu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!