Heim Backend-Entwicklung PHP-Tutorial Beispielanalyse einer Sitzungssperre in PHP, um blockierende Anfragen zu verhindern

Beispielanalyse einer Sitzungssperre in PHP, um blockierende Anfragen zu verhindern

Aug 08, 2017 am 09:29 AM
php session 实例分析

In diesem Artikel wird hauptsächlich die Methode von PHP zum Verhindern von Blockierungsanforderungen basierend auf Sitzungssperren vorgestellt. Er analysiert die Verwendung von PHP-Session-Sperren und die damit verbundenen Betriebstechniken, um Blockierungsanforderungen in Form von Beispielen zu verhindern.

Das Beispiel beschreibt, wie PHP Sitzungssperren verwendet, um blockierende Anfragen zu verhindern. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Erklärung:

Vorheriger Artikel Sitzungsblockierungsprobleme und Lösungen in der PHP-Programmierung Nach einer kurzen Analyse der Lösung für das Blockieren von PHP-Sitzungen finden Sie hier eine weitere Lösung.

Text:

Moderne Browser begrenzen die Anzahl gleichzeitiger Verbindungen zu einem Host im Allgemeinen auf 4 oder 6. Das bedeutet, dass es aufgrund der Beschränkung der Parallelität zu einer Warteschlangenbildung kommt, wenn Ihre Webseite Dutzende Assert-Dateien (JS, Bilder, CSS) vom selben Host lädt. Das gleiche oder noch schlimmere Problem tritt auch bei PHP-Skripten auf, die Sitzungen verwenden.

Problem:

PHP-Sitzungen werden standardmäßig in Dateien gespeichert, wenn eine PHP-Datei (session_start()) angefordert wird, die zum Betrieb benötigt wird session wird diese Datei vom ersten Prozess gesperrt, der die Sitzung ausführt, wodurch andere Anforderungen blockiert werden. Andere Anfragen bleiben unter session_start() ausstehend, bis die Sitzungsdatei entsperrt ist.

Lösung:

Da die gesperrte Sitzungsdatei erst entsperrt wird, wenn die Skriptausführung endet oder die Sitzung normal geschlossen wird, um Wenn es gesperrt ist, um eine große Anzahl von PHP-Anfragen zu verhindern (Sie müssen $_SESSION-Daten verwenden), können Sie die Sitzung sofort nach dem Schreiben schließen und so die Sperre aufheben.

Sitzung schließen:


session_write_close();
Nach dem Login kopieren

Diese Technik ist sehr nützlich, insbesondere für ein Skript, dessen Verarbeitung lange dauert. Und diese Funktion beendet lediglich die Schreibsitzung, das Lesen ist weiterhin möglich.


// 
session_start();
//可以读写session
$_SESSION['latestRequestTime'] = time();
//关闭session
session_write_close();
//读取session
$twitterId = $_SESSION['twitterId'];
Nach dem Login kopieren

Anmerkung:

Nach PHP5.4 unterstützt session_set_save_handler die Zustellung SessionHandlerInterface, der zweite Parameter besteht darin, session_write_close() als Rückrufmethode anzugeben (der Standardwert ist true) und die Funktion session_write_close() als register_shutdown_function()-Funktion zu registrieren.

Die Verwendung von Memcache oder Redis zum Speichern von Sitzungen kann das „Sperr“-Problem lösen, aber wenn es nicht richtig gehandhabt wird, erhöht sich die Anzahl der Verbindungen (wenn es nach dem Sitzungsvorgang zeitaufwändige Vorgänge gibt). Verbindung wird nicht hergestellt Zum Recycling können Sie den session_write_close()-Vorgang aktiv ausführen, nachdem der Sitzungsschreibvorgang abgeschlossen ist)

Das obige ist der detaillierte Inhalt vonBeispielanalyse einer Sitzungssperre in PHP, um blockierende Anfragen zu verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles