Heim > Artikel > Backend-Entwicklung > PHP-Interview
Der Inhalt dieses Artikels handelt von der Erfahrung mit PHP-Interviews. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.
CORS (Cross Origin Resource Sharing) domänenübergreifend Ressourcenfreigabe, die standortübergreifende Ressourcenanfragen ermöglicht. Der Client muss eine bestimmte Methode zum Anfordern von Ressourcen verwenden (z. B. xmlhttprequest) und bestimmte Header-Informationen bereitstellen. Der Server muss auch domänenübergreifende Ressourcenanforderungen unterstützen.
Memcache kann Multithreading nutzen, hoher Durchsatz, geeignet für große Besuche
Memcache unterstützt nur einfache Schlüssel/Wert-Strukturen
Memcache kann keine Daten speichern und kann nicht zum Zwischenspeichern verwendet werden.
Weil Memcache unterstützt mehrere Thread-Operationen, daher muss das Problem der Datenkonsistenz berücksichtigt werden, und es wird optimistisches Sperren von cas (Prüfen und Festlegen) verwendet
Da Redis einfach geformt ist, kann es dies sicherstellen Ordnungsmäßigkeit der Operationen
Redis unterstützt eine Vielzahl von Datenstrukturen, Schlüssel/Wert, Liste, Menge, Zset, Diktat usw.
Redis Daten können dauerhaft gespeichert werden. Speichern Sie die Daten auf der Festplatte und können sie bei einem Neustart auslesen
Redis unterstützt Datensicherung, also Datensicherung im Master-Slave-Modus
Statisches HTML, statische Verwendung häufig verwendeter, aber selten aktualisierter Daten
Zu vermeidende Trennung des Bildservers. Wirkt sich auf den Anwendungsserver aus und kann individuelle Konfigurationsoptimierungen, Cache-Einstellungen usw. für den Bildserver durchführen
Datenbankcluster, Bibliothekstabellen-Hashing
Datenbankcluster können eine Lese- und Schreibtrennung realisieren und die Reaktionsgeschwindigkeit der Datenbank verbessern. Es handelt sich normalerweise um einen Master und mehrere Slaves oder x-Master und y-Slave. Wenn beispielsweise weniger geschrieben und mehr gelesen wird, ist ein Server für Schreibvorgänge reserviert und andere Server werden für Lesevorgänge verwendet. Dadurch können die Auswirkungen von Lese-/Schreibsperren vermieden werden. Nach Abschluss des Schreibvorgangs müssen die Daten jedoch synchronisiert werden.
Ein weiterer Vorteil eines Datenbankclusters besteht darin, dass beim Ausfall eines Datenbankservers immer noch vollständige Daten auf anderen Servern vorhanden sind.
In einem In der verteilten Datenbank gibt es mehrere Knoten im System, und jeder Knoten führt unterschiedliche Funktionen aus. Wenn ein Knoten ausfällt, kann die entsprechende Funktion nicht ausgeführt werden.
Der Unterschied zwischen Datenbankcluster und verteilter Datenbank. Angenommen, die Ausführung einer Aufgabe auf einem Knoten dauert eine Stunde, und es gibt jetzt 10 solcher Aufgaben und 10 Knoten. Die verteilte Datenbank kann die Aufgabe in 10 Aufgaben aufteilen. Jeder Knoten erledigt eine andere Aufgabe, unabhängig von den Abhängigkeiten der Unteraufgaben. Alle Aufgaben werden nach einer Stunde abgeschlossen. Jeder Knoten im Datenbankcluster kann eine vollständige Aufgabe erledigen. Es können durchschnittlich 10 Aufgaben pro Knoten ausgeführt werden, sodass alle Aufgaben nach einer Stunde abgeschlossen sind.
SQL-Optimierung
Wenn die Tabelle zu viele Daten enthält, können Sie erwägen, die Tabelle aufzuteilen und Hash-Mapping zu verwenden
Indexoptimierung
Cache
Spiegel, wird zur Verbesserung der Zugriffsgeschwindigkeit verwendet
Lastausgleich, Lösung hoher Parallelität und massiver Zugriffsprobleme
CDN, sodass Benutzer auf den nächstgelegenen CDN-Server zugreifen und die schnellste Antwort erhalten können
Datenkomprimierung
__set/__get behandelt Attribute, die nicht vorhanden sind in der Klasse
__call/_callStatic wird ausgelöst, wenn eine Methode/statische Methode aufgerufen wird, die in der Klasse nicht vorhanden ist. __callStatic selbst muss auch als statische Methode
__toString deklariert werden, um das Objekt in einen String umzuwandeln und auszugeben
__invoke, um das Objekt auszuführen als Funktion
Bis auf die Fehlerbehandlung ist alles andere gleich. require erzeugt einen schwerwiegenden Fehler und das Skript wird nicht mehr ausgeführt. include generiert eine Warnung, aber das Skript wird weiterhin ausgeführt
Das obige ist der detaillierte Inhalt vonPHP-Interview. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!