Entretien PHP

不言
Libérer: 2023-03-23 19:22:01
original
1988 Les gens l'ont consulté

Le contenu de cet article concerne l'expérience d'entretien PHP. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

  • CORS (partage de ressources d'origine croisée) entre domaines. partage de ressources , qui permet les demandes de ressources entre sites. Le client doit utiliser une méthode spécifique pour demander des ressources (telle que xmlhttprequest) et doit apporter des informations d'en-tête spécifiques. Le serveur doit également prendre en charge les demandes de ressources inter-domaines

memcache et redis. et différences

  • memcache peut profiter du multithreading, d'un débit élevé, adapté aux grandes visites

  • memcache ne prend en charge qu'une structure clé/valeur simple

  • memcache ne peut pas conserver les données et ne peut pas être sauvegardé. Il ne peut être utilisé que pour la mise en cache. Les données seront perdues après le redémarrage

  • Parce que. memcache prend en charge plusieurs opérations Thread, donc le problème de la cohérence des données doit être pris en compte, et le verrouillage optimiste cas (vérifier et définir) est utilisé

  • Étant donné que redis est de forme unique, il peut garantir que ordre des opérations

  • Redis prend en charge une variété de structures de données, clé/valeur, liste, ensemble, zset, dict, etc.

  • Redis les données peuvent être stockées de manière persistante. Stockez les données sur le disque et pouvez les lire lors du redémarrage

  • redis prend en charge la sauvegarde des données, c'est-à-dire la sauvegarde des données en mode maître-esclave

Solution à haute concurrence pour les projets Web

  • HTML statique, utilisation statique de données couramment utilisées mais rarement mises à jour

  • séparer les serveurs d'images pour éviter Affecte le serveur d'applications et peut effectuer une optimisation de configuration individuelle, des paramètres de cache, etc. pour le serveur d'images

  • Cluster de base de données, hachage de table de bibliothèque

    • Le cluster de base de données peut réaliser une séparation en lecture et en écriture et améliorer la vitesse de réponse de la base de données. Il s'agit généralement d'un maître et de plusieurs esclaves, ou d'un maître x et d'un esclave y. Par exemple, lors de l'écriture de moins et de la lecture de plus, un serveur est dédié aux opérations d'écriture et d'autres serveurs sont utilisés pour les opérations de lecture, ce qui peut éviter l'impact des verrous en lecture-écriture. Cependant, une fois l'opération d'écriture terminée, les données doivent être synchronisées.

    • Un autre avantage d'un cluster de bases de données est que lorsqu'un serveur de base de données tombe en panne, il y a toujours des données complètes sur d'autres serveurs

    • Dans un système distribué base de données, il existe plusieurs nœuds dans le système et chaque nœud remplit des fonctions différentes. Si un nœud meurt, la fonction correspondante ne peut pas être complétée.

    • La différence entre un cluster de bases de données et une base de données distribuée. Supposons qu’une tâche prenne une heure sur un nœud et qu’il existe désormais 10 tâches de ce type et 10 nœuds. La base de données distribuée peut diviser la tâche en 10 tâches. Chaque nœud effectue une tâche différente, quelles que soient les dépendances des sous-tâches. Toutes les tâches seront terminées au bout d'une heure. Chaque nœud du cluster de bases de données peut effectuer une tâche complète. Il peut effectuer en moyenne 10 tâches sur chaque nœud, de sorte que toutes les tâches soient terminées au bout d'une heure.

    • Optimisation SQL

    • S'il y a trop de données dans la table, vous pouvez envisager de diviser la table et d'utiliser le mappage de hachage

    • Optimisation de l'index

  • Cache

  • Miroir, utilisé pour améliorer la vitesse d'accès

  • Équilibrage de charge, résolvant les problèmes de concurrence élevée et d'accès massifs

  • CDN, permettant aux utilisateurs d'accéder au serveur cdn le plus proche et d'obtenir la réponse la plus rapide

  • Compression des données

PHP

Méthode magique

  • __set/__get gère les attributs qui n'existent pas dans la classe

  • __call/_callStatic est déclenché lors de l'appel d'une méthode/méthode statique qui n'existe pas dans la classe. __callStatic lui-même doit également être déclaré comme méthode statique

  • __toString pour convertir l'objet en chaîne et le sortir

  • __invoke pour exécuter l'objet en fonction

La différence entre require et include


À l'exception de la gestion des erreurs, tout le reste est pareil. require génère une erreur fatale et le script cesse de s'exécuter. include générera un avertissement, mais le script continuera à s'exécuter


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal