


Que dois-je faire si une exception de cache Redis se produit ? Comment le résoudre ?
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]
Solution
2. Généralement, lorsque le degré de concurrence n'est pas particulièrement important, la solution la plus couramment utilisée est le verrouillage et la mise en file d'attente.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. Solution1. Ajoutez une vérification au niveau de la couche d'interface, telle que la vérification de l'authentification de l'utilisateur, la vérification de base de l'identifiant et l'interception directe de l'identifiant<=0; , il n'est pas récupéré de la base de données à ce stade, la paire clé-valeur peut également être écrite comme clé-nulle. La durée de validité du cache peut être définie plus courte, par exemple 30 secondes (une valeur trop longue la rendra inutilisable. dans des circonstances normales). Cela peut empêcher les utilisateurs attaquants d'utiliser à plusieurs reprises le même identifiant pour des attaques par force brute ; 3. Utilisez un filtre Bloom pour hacher toutes les données possibles dans un bitmap suffisamment grand. Les données qui ne doivent pas exister seront ainsi interceptées par ce bitmap. évitant la pression des requêtes sur le système de stockage sous-jacent.
Un
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. Solution1. Définir les données du point d'accès pour qu'elles n'expirent jamais
2 Ajouter un verrouillage mutex, un verrouillage mutexPré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 connexion2. La quantité de données n'est pas importante et peut être automatiquement chargée au démarrage du projet ; cache régulièrement ;
Ré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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

L'utilisation des opérations Redis pour verrouiller nécessite l'obtention du verrouillage via la commande setnx, puis en utilisant la commande Expire pour définir le temps d'expiration. Les étapes spécifiques sont les suivantes: (1) Utilisez la commande setnx pour essayer de définir une paire de valeurs de clé; (2) Utilisez la commande Expire pour définir le temps d'expiration du verrou; (3) Utilisez la commande del pour supprimer le verrouillage lorsque le verrouillage n'est plus nécessaire.

Redis utilise des tables de hachage pour stocker les données et prend en charge les structures de données telles que les chaînes, les listes, les tables de hachage, les collections et les collections ordonnées. Redis persiste les données via des instantanés (RDB) et ajoutez les mécanismes d'écriture uniquement (AOF). Redis utilise la réplication maître-esclave pour améliorer la disponibilité des données. Redis utilise une boucle d'événement unique pour gérer les connexions et les commandes pour assurer l'atomicité et la cohérence des données. Redis définit le temps d'expiration de la clé et utilise le mécanisme de suppression paresseux pour supprimer la clé d'expiration.

La meilleure façon de comprendre le code source redis est d'aller étape par étape: familiarisez-vous avec les bases de Redis. Sélectionnez un module ou une fonction spécifique comme point de départ. Commencez par le point d'entrée du module ou de la fonction et affichez le code ligne par ligne. Affichez le code via la chaîne d'appel de fonction. Familiez les structures de données sous-jacentes utilisées par Redis. Identifiez l'algorithme utilisé par Redis.

Redis, en tant que Message Middleware, prend en charge les modèles de consommation de production, peut persister des messages et assurer une livraison fiable. L'utilisation de Redis comme Message Middleware permet une faible latence, une messagerie fiable et évolutive.
