Que dois-je faire s'il y a une exception de cache Redis ? L'article suivant vous présentera les exceptions et solutions du cache Redis. J'espère qu'il vous sera utile ! Avalanche de cache courte période de temps et effondrement. [Recommandations associées :
Tutoriel vidéo Redis]
3. Ajoutez une balise de cache correspondante à chaque donnée mise en cache et enregistrez si la balise de cache est invalide, mettez à jour le cache de données. Pénétration du cache
La pénétration du cache fait référence aux données qui ne sont ni dans le cache ni dans la base de données, ce qui fait que toutes les requêtes tombent sur la base de données, ce qui oblige la base de données à résister à un grand nombre de requêtes dans un court laps de temps et effondrement. SolutionUn
supplémentaire a atteint un niveau extrême d'utilisation de l'espace, c'est-à-dire Bitmap et Bloom Filter.Bitmap
: La table de hachage typique est la table de hachageL'inconvénient est que Bitmap ne peut enregistrer qu'un seul bit d'information pour chaque élément. Si vous souhaitez remplir des fonctions supplémentaires, je crains que vous ne puissiez le faire qu'en sacrifiant davantage. l'espace et le temps.Filtre Bloom (recommandé)
introduit des fonctions de hachage indépendantes k(k>1)k(k>1) pour garantir que les éléments sont complétés dans un espace et un taux d'erreur de jugement donnés. Le processus de jugement.Son avantage est que l'efficacité spatiale et le temps de requête sont bien supérieurs à l'algorithme général. Son inconvénient est qu'il présente un certain taux de mauvaise reconnaissance et des difficultés de suppression.
L'idée principale de l'algorithme Bloom-Filter est d'utiliser plusieurs fonctions de hachage différentes pour résoudre les « conflits ». Hash a un problème de conflit (collision), et les valeurs de deux URL obtenues en utilisant le même Hash peuvent être les mêmes. Afin de réduire les conflits, nous pouvons introduire plusieurs valeurs de hachage supplémentaires. Si nous concluons à partir de l'une des valeurs de hachage qu'un élément n'est pas dans l'ensemble, alors l'élément n'est certainement pas dans l'ensemble. Ce n'est que lorsque toutes les fonctions de hachage nous indiquent que l'élément est dans l'ensemble que nous pouvons être sûrs que l'élément existe dans l'ensemble. C'est l'idée de base de Bloom-Filter.Bloom-Filter est généralement utilisé pour déterminer si un élément existe dans un grand ensemble de données.
Panne du cache
La panne du cache fait référence aux données qui ne sont pas dans le cache mais dans la base de données (généralement lorsque la durée du cache expire). À ce stade, en raison du grand nombre d'utilisateurs simultanés, les données ne le sont pas). lire dans le cache en même temps et les données ne sont pas lues dans le cache en même temps. Accéder à la base de données pour récupérer des données entraînera une augmentation instantanée de la pression sur la base de données, provoquant une pression excessive. Contrairement à l'avalanche de cache, la panne du cache fait référence à une requête simultanée des mêmes données. L'avalanche de cache signifie que différentes données ont expiré et qu'un grand nombre de données sont introuvables, la base de données est donc recherchée. SolutionPréchauffage du cacheLe préchauffage du cache signifie qu'une fois le système mis en ligne, les données du cache pertinentes sont chargé directement dans le système de cache. De cette façon, vous pouvez éviter le problème d’interroger d’abord la base de données, puis de mettre les données en cache lorsque l’utilisateur le demande ! Les utilisateurs interrogent directement les données mises en cache qui ont été préchauffées !
Solution
1. Écrivez directement une page d'actualisation du cache et faites-la manuellement lors de la connexionRétrogradation du cache
Lorsque le trafic augmente fortement, que des problèmes de service surviennent (tels qu'un temps de réponse lent ou aucune réponse) ou que des services non essentiels affectent les performances des processus principaux, il est toujours nécessaire de s'assurer que le service est toujours disponible, même s'il est endommagé. Servez. Le système peut automatiquement rétrograder en fonction de certaines données clés, ou configurer des commutateurs pour réaliser une rétrogradation manuelle.
Le but ultime de la rétrogradation du cache est de garantir que les services de base sont disponibles, même s'ils entraînent des pertes. Et certains services ne peuvent pas être rétrogradés (comme l'ajout au panier, le paiement). Avant de déclasser, vous devez trier le système pour voir si le système peut perdre des soldats et conserver des commandants ; triant ainsi ce qui doit être protégé jusqu'à la mort et ce qui peut être déclassé, par exemple, vous pouvez vous référer au niveau de journal ; plan de pose :1. Général : par exemple, certains services expirent occasionnellement en raison d'une instabilité du réseau ou lorsque le service est en ligne, et peuvent être automatiquement rétrogradés ;
2 Avertissement : certains services ont des taux de réussite fluctuants au cours d'une période donnée ; entre 95 et 100 %). Il peut être rétrogradé automatiquement ou manuellement, et une alarme peut être envoyée
3. Erreur : par exemple, le taux de disponibilité est inférieur à 90 %, ou le pool de connexions à la base de données est explosé, ou le nombre de visites augmente soudainement jusqu'au seuil maximum que le système peut supporter. Cela peut être automatiquement déclassé ou manuellement en fonction de la situation
4 Erreurs graves : par exemple, si les données sont erronées pour des raisons particulières, Un déclassement manuel d’urgence est requis.
Le but de la rétrogradation du service est d'empêcher une défaillance du service Redis de provoquer des problèmes d'avalanche dans la base de données. Par conséquent, pour les données mises en cache sans importance, une stratégie de rétrogradation du service peut être adoptée. Par exemple, une approche courante consiste à renvoyer directement la valeur par défaut à l'utilisateur en cas de problème avec Redis.
Clé du hotspot du cache
Une clé dans le cache (comme un produit promotionnel) expire à un certain moment. Il existe un grand nombre de demandes simultanées pour cette clé à ce stade. le cache a expiré. Généralement, les données sont chargées à partir de la base de données principale et restaurées dans le cache. À ce stade, des requêtes simultanées volumineuses peuvent instantanément submerger la base de données principale.
Solution
Verrouillez la requête du cache. Si la CLÉ n'existe pas, verrouillez-la, puis enregistrez la base de données dans le cache, puis déverrouillez-la. Les autres processus attendent s'ils trouvent un verrou, puis renvoient les données ou ; entrez dans la base de données après le déverrouillage. Pour
plus de connaissances liées à la programmation, veuillez visiter : Vidéo de programmation ! !
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!