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 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é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
__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
À 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!