Heim >Backend-Entwicklung >PHP-Tutorial >Zeichnen Sie die wichtigsten Punkte von mittleren bis leitenden PHP-Interviews während der Epidemie auf
Aufgrund der Epidemie handelt es sich um ein Videointerview. Die Person, die für dieses Interview direkt verantwortlich ist, ist der technische Direktor A. Die anderen beiden scheinen Leiter verschiedener Abteilungen zu sein (B und C). ) in der gleichen Position (also alle ab 35).
Kommen wir gleich zum Thema, ohne viel zu sagen. (Manche Leute möchten Doppelpunkte verwenden, um sie zu trennen, aber die Doppelpunkttaste und die Tabulatortaste auf der Tastatur scheinen kaputt zu sein.)
Zu Beginn stellte HR die am Interview beteiligten Mitglieder und Positionen vor und verstand dann seine Fragen Das Produkt Der Manager hat Ben nach den Gründen und Fragen gefragt, die Sie wissen möchten.
Dann beginnt das eigentliche Drama.
Direktor A: Da Sie MySQL sehr gut beherrschen, erzählen Sie mir etwas über die Isolationsstufe von MySQL. .
Ich: Die Isolationsstufen von MySQL-Transaktionen sind von der höchsten zur höchsten: „Lesen nicht festgeschrieben“, „Lesen festgeschrieben“, „wiederholbares Lesen“ und „serialisiert“. Die Standardisolationsstufe von MySQL ist wiederholbares Lesen. Das Problem, das durch die Parallelität von Transaktionen verursacht werden kann, ist Dirty Read. , nicht wiederholbares Lesen, Phantomlesen und geht dann jeweils auf die Vorgänge und Lösungen ein, die diese Situationen verursachen.
Direktor A: Was ist Ihre Strategie zur Änderung der Isolationsstufe in tatsächlichen Szenarien?
Ich: .... (Die Auslassungspunkte hier bedeuten, dass ich mir etwas Unsinn ausgedacht habe. Tatsächlich bin ich etwas verwirrt, weil ich nur zig Millionen Besuchsdaten verarbeitet habe, aber es ist keine hohe Parallelität, also beinhaltet keine Änderung des Isolationssektors, oder ich denke normalerweise nicht tief genug nach)
Direktor A: Was sind die Indizes von innodb und wie werden sie implementiert?
Ich: Der Primärschlüssel ist ein eindeutiger gewöhnlicher gemeinsamer Index, der durch B-Baum, B+-Baum und Hash implementiert werden kann.
Direktor A: Was sind die Unterschiede zwischen diesen Implementierungen? Welche Strategien verwenden Sie, um sie beim Entwerfen von Indizes auszuwählen?
Ich: B-Baum und B+-Baum unterscheiden sich in den Daten zu Blattknoten und der Tiefe des Baums. Für den gleichen Abruf benötigt B-Baum einen IO mehr als B+-Baum. Wählen Sie je nach tatsächlichem Geschäftsszenario unterschiedliche Indexalgorithmen. Wenn es mehr Lesen und weniger Schreiben ist, wähle ich B + Baum (eigentlich weiß ich es nicht, weil ich es vergessen habe)
Direktor A: Die Klassifizierung und Funktion von MySQL-Sperren , was machst du? Tatsächliche Nutzungsszenarien.
Ich: (Ich war zu diesem Zeitpunkt etwas nervös, weil die vorherigen Interviews von oberflächlich bis tiefgründig waren)... Dann habe ich kurz mein Verständnis geäußert, aber tatsächlich war die Antwort nicht zufriedenstellend. Weil B und C auch andere Fragen einfügen.
Direktor B: Kennen Sie sich mit der Verteilung aus, wie man verteilte Sperren implementiert, und haben Sie etwas über etcd gelernt?
Ich: Sie können setnx von redis in Kombination mit der Ablaufzeit verwenden, um dies zu implementieren, da ich dies bereits in meinem Unternehmen usw. implementiert habe, aber ich habe das nie verstanden (ich habe dieses Konzept nicht im Kopf). und (unterbrochen)
Direktor C: Die Zeit ist begrenzt, fahren wir mit anderen Fragen fort. Mal sehen, ob Sie PHP-Optimierung durchgeführt haben und wie man Opcahche verwendet.
Ich: (Ich habe einen Moment nachgedacht), Optimierung des Operationscodes
Direktor C: Wo ist der Opcode?
Ich: Ich habe davon keinen Eindruck, denn basierend auf Im vorherigen Geschäftsszenario begann ich mit Front-End, CDN, Server-Reverse-Proxy, Datenbank-Cache und Optimierung des Programmlogikcodes. Das Projekt wurde qualitativ verbessert, aber es ist das einzige, was keinen Kontakt zu Opchache hat Opcode. Was für ein Fehler.)
Direktor C: Beschreiben Sie kurz den URL-Prozess, konzentrieren Sie sich einfach darauf. Mein Browser gibt die URL ein, analysiert sie in eine IP und sendet dann die Anfrage an den Webserver nginx, es wird über cgi an PHP-FPM gesendet und dann darauf gewartet, dass das PHP-Skript die Logik analysiert und antwortet.
Direktor C: Was ist CGI und wofür wird es verwendet? Ich: CGI ist ein Protokoll, ein Protokoll für die Kommunikation von Sprachen wie PHP mit Webservern.
Direktor B: Was ist das Architekturmodell von PHP-FPM und wie haben Sie es optimiert?
Ich: Es handelt sich um ein Master-(Haupt-)Worker-Architekturmodell. Es ist der Arbeitsprozess, der Anforderungen tatsächlich verarbeitet und recycelt. Bei Optimierung wurde die Anzahl seiner Prozesse geändert Lassen Sie mich die Konfiguration kurz zusammenfassen: Aufgrund des zuvor konfigurierten statischen Modus betrug die Standardanzahl der Prozesse 200. Später, als eine gewisse Parallelität herrschte, sollte ich sie in den „dritten“ Konfigurationsmodus ändern und konfigurieren Es gibt einen Mindest- und einen Höchstwert (der Höchstwert wird hier eigentlich vergessen, ich denke nur, dass es keine Begrenzung geben darf, schließlich sind die Hardware-Ressourcen die Obergrenze), und dann wird die Anzahl der Prozesse dynamisch erhöht die tatsächliche Anzahl der Anfragen.
Regisseur B: Gibt es noch andere Optimierungen?
Ich: (Ich habe eine Weile geschwiegen. Tatsächlich habe ich während der Überarbeitung andere Änderungen vorgenommen, aber ich habe es vergessen. Ich hatte das Gefühl, dass das Interview gestreckt war) und Ich habe es damals gemacht. Es kam von anderen Optimierungen, aber ich kann mich nicht daran erinnern.
Direktor B: Erzählen Sie mir von dem von Ihnen verwendeten RabbitMQ und Ihrem Verständnis davon.
Ich: (Beschreibe kurz die Architektur von Rabbitmq) und meine Nutzungsszenarien und mein Geschäft.
Direktor B: Erzählen Sie mir von dem Themenmodus, den Sie verwenden.
Ich: (Ich habe kurz den Themennutzungsprozess beschrieben, der als bestanden gilt).
Direktor A: Reden wir über Redis-Sharding.
Ich: Sharding ist der Prozess der Aufteilung von Schlüsseln in mehrere Redis-Instanzen. Es nutzt den Speicher und die CPU-Rechenleistung mehrerer Computer, um ,,,,
Direktor A: So implementieren Sie Rankings
Ich: Sie können das verwenden Ich habe den Redis-Satz bestellt, weil er eine Punktzahl hat,,,
Direktor A: Verwenden Sie diese Funktion, um den Wert zu erhalten.
Ich: (Wenn ich mich daran erinnere, kann ich mich wirklich nicht daran erinnern) Ich habe vergessen, was für eine Mitgliedsfunktion.
Direktor A: Reden wir über AOP. Haben Sie es verwendet?
Ich: Bei der AOP-Aspektprogrammierung geht es darum, dynamische Proxys und andere Technologien zu verwenden, um eine einheitliche Wartung von Funktionsmodulen zu erreichen, ein bisschen wie die Fassade von Laravel (ich bin mir nicht sicher, Ich denke darüber nach, scheitern).
Direktor A: Sprechen wir über die Eigenschaften von Hyperf
Me: Basierend auf Swoole, einem leistungsstarken und hochflexiblen Plug-in-Coroutine-Framework. Es handelt sich um eine Containerisierung von Abhängigkeitsinjektion, AOP-Modus, Annotationsmodus, Ereignismodus. ,,
Direktor A: Reden wir über Coroutine-Pool und Coroutine-Zustandsverwaltung
Ich: (Ich habe hier nicht wirklich darauf geantwortet. Nachdem ich darüber nachgedacht hatte, konnte ich tatsächlich einen Teil davon beantworten. Zumindest Coroutine staatliche Verwaltung kann beantwortet werden)
Direktor A: Wenn Sie Go kennen, ist diese Frage sehr einfach 1)
Direktor B: Reden wir über Linux und Shell-Skript
ich: (eine kurze Einführung in Linux und allgemeine Befehle und vi), Shell-Ausdrücke und Variablendefinitionen und -verwendungen unterscheiden sich von der PHP-Sprache.
Direktor C: Ich sehe, dass Sie Map Reduce für die Datenstapelverarbeitung verwenden. Erzählen Sie mir davon.
Ich habe Monogos Map Redcue für die Datenverarbeitung verwendet Regisseur A: Erzählen Sie mir von Ihren Plänen für die Zukunft
Ich: …
Das Obige ist eine 100%ige Wiederherstellung meines Videointerviews. Nach sorgfältiger Überlegung habe ich herausgefunden, dass es für viele davon tatsächlich Lösungen gibt, aber warum ? Die Wirkung dieses Interviews ist so beeindruckend, der Rhythmus, ja, der Rhythmus. Es war der Interviewer, der mir „tiefgründige“ Sachen erzählte, die meinen Rhythmus durcheinander brachten.
Verwandte Empfehlungen: „
PHP-Video-Tutorial“ „
Sammlung von PHP-Interviewfragen (Sammlung)“
Das obige ist der detaillierte Inhalt vonZeichnen Sie die wichtigsten Punkte von mittleren bis leitenden PHP-Interviews während der Epidemie auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!