Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Interview

PHP-Interview

不言
不言Original
2018-04-14 09:29:341968Durchsuche

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- und Redis-Ähnlichkeiten und Unterschiede

  • 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

Lösung mit hoher Parallelität für Webprojekte

  • 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

PHP

Magische Methode

  • __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

Der Unterschied zwischen require und include


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!

Stellungnahme:
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
Vorheriger Artikel:PHP-GrundfunktionenNächster Artikel:PHP-Grundfunktionen