Le contenu de cet article est de partager des connaissances et des expériences sur les entretiens PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer
Partage de ressources inter-domaines CORS (cross origin Resource Sharing), qui permet des requêtes de ressources inter-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 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
HTML statique, utilisation statique de données couramment utilisées mais rarement mises à jour
Séparation du serveur d'images à é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 aura toujours des données complètes sur d'autres serveurs
Dans un base de données distribuée, 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
__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 tant que fonction
include function : lira le fichier spécifié et exécutera le programme à l'intérieur
;fonction require : lira le contenu du fichier cible et se remplacera par ce contenu lu
fonction include_once : inclura et exécutera le fichier spécifié ; Ce comportement est similaire à l'instruction include, la seule différence est que si le fichier a déjà été inclus, il ne le sera plus. Comme le nom de cette instruction l'indique, elle ne sera incluse qu'une seule fois ;
fonction require_once : exactement la même chose que l'instruction require, la seule différence est que PHP vérifiera si le fichier a déjà été inclus et, si tel est le cas, ne le sera pas à nouveau.
Utiliser include_once ou require_once réduira l'efficacité du programme, car avant de charger le fichier, il recherchera d'abord si le fichier a été chargé dans la table des fichiers chargés
L'inclusion d'un fichier inexistant générera uniquement une alarme. Lorsque vous aurez besoin d'un fichier inexistant, une erreur fatale sera générée directement et le script s'arrêtera
Si la valeur de retour ne fournit pas de paramètres, null sera renvoyé à ce moment-là, et les parenthèses ne doivent pas être incluses pour le moment. Si des parenthèses sont utilisées, cela provoquera une erreur d'analyse
Lors du retour d'une référence à une variable, les parenthèses ne doivent pas être utilisées. Sinon, cela deviendra la valeur de la référence renvoyée à la place de la référence elle-même
Mécanisme de variable PHP faiblement typé
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!