Maison base de données Redis Comment résoudre l'avalanche causée par Redis

Comment résoudre l'avalanche causée par Redis

Jul 04, 2019 pm 02:24 PM

Comment résoudre l'avalanche causée par Redis

Cause de l'avalanche :

La compréhension simple de l'avalanche de cache est la suivante : en raison de la défaillance du cache d'origine (ou les données ne sont pas chargées dans le cache), le nouveau cache n'est pas arrivé pendant cette période (le cache est normalement obtenu auprès de Redis, comme indiqué ci-dessous) toutes les requêtes qui auraient dû accéder au cache sont interrogées dans la base de données, ce qui exerce une pression énorme sur le processeur et la mémoire de la base de données. Dans certains cas, cela peut entraîner une indisponibilité de la base de données et un effondrement du système.

La solution de base est la suivante :

Premièrement, la plupart des concepteurs de systèmes envisagent d'utiliser des verrous ou des files d'attente pour garantir qu'il n'y aura pas un grand nombre de threads lisant et écrivant dans la base de données en même temps. . Éviter une pression excessive sur la base de données en cas de panne du cache, même si cela peut alléger dans une certaine mesure la pression sur la base de données, cela réduit également le débit du système.

Deuxièmement, analysez le comportement des utilisateurs et essayez de répartir uniformément le temps d'invalidation du cache.

Troisièmement, si un certain serveur de cache est en panne, vous pouvez envisager un serveur principal et une sauvegarde, tels que : redis principal et sauvegarde, mais la double mise en cache implique des transactions de mise à jour, et la mise à jour peut lire des données sales, ce qui doit être résolu. .

Solution à l'effet d'avalanche Redis :

1. Les verrous distribués peuvent être utilisés pour la version autonome, les verrous locaux

2. Méthode middleware de message

3. Cache de niveau un et niveau deux Redis+Ehchache

4. Délai d'expiration des clés Redis uniformément réparti

Explication :

1. Quand tout à coup, il y en a un grand nombre. des requêtes à la base de données Lors de l'utilisation du serveur, des restrictions de requêtes sont mises en œuvre. En utilisant le mécanisme ci-dessus, il est garanti qu'un seul thread (requête) fonctionne. Sinon, faites la queue et attendez (verrouillage distribué du cluster, verrouillage local autonome). Réduisez le débit du serveur et la faible efficacité.

Ajouter pour verrouiller !

Comment résoudre lavalanche causée par Redis

Assurez-vous qu'un seul thread peut entrer. En fait, une seule requête peut effectuer l'opération de requête

Vous pouvez également utiliser la stratégie de limitation actuelle ici ~.

2. Utilisez un middleware de messages pour résoudre

Cette solution est la solution la plus fiable !

Le middleware de messages peut résoudre une concurrence élevée ! ! !

S'il n'y a aucune valeur dans Redis lors de l'accès à un grand nombre de requêtes, les résultats de la requête seront stockés dans le middleware de messages (en utilisant la fonctionnalité de synchronisation asynchrone MQ)

Comment résoudre lavalanche causée par Redis

3. Créez un cache de deuxième niveau. A1 est le cache d'origine et A2 est le cache de copie. Lorsque A1 échoue, vous pouvez accéder à A2. Le délai d'expiration du cache de A1 est défini sur court terme et A2 est défini. défini sur long terme (ce point est un supplément)

4. Définissez différents délais d'expiration pour différentes clés afin de rendre le temps d'invalidation du cache aussi uniforme que possible.

Pour plus de connaissances sur Redis, veuillez visiter la colonne Tutoriel d'utilisation de Redis !

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Comment supprimer les clés dans Redis en utilisant des modèles? Comment supprimer les clés dans Redis en utilisant des modèles? Sep 14, 2025 am 12:56 AM

Utilisez la commande SCAN pour coopérer avec un link pour supprimer en toute sécurité les touches qui correspondent aux modèles dans Redis. Tout d'abord, utilisez Scan0MatchPatternCount to Batch Obtient le nom de clé pour éviter le blocage; Ensuite, utilisez un link asynchrone pour améliorer les performances. Il est recommandé d'utiliser Redis-Cli--Scan - Pattern'pattern '| xargsredis-Cliunlink pour obtenir une suppression efficace sur la ligne de commande et interdire l'utilisation de la commande Keys dans des environnements de production.

Comment exécuter Redis dans un conteneur Docker? Comment exécuter Redis dans un conteneur Docker? Sep 17, 2025 am 04:16 AM

Exécuter Redis avec Docker sans l'installer sur l'hôte, il peut être rapidement démarré via la commande dockerrun; il peut personnaliser les fichiers de configuration et les monter pour implémenter des politiques de mémoire et d'autres paramètres; Il peut persister les données en nommant le volume redis-data; Il est recommandé d'utiliser DockerCose pour faciliter le déploiement et la maintenance de l'environnement de développement.

Comment sauvegarder et restaurer une base de données Redis? Comment sauvegarder et restaurer une base de données Redis? Sep 16, 2025 am 01:06 AM

UsebgsaveformanualorConfiguresAavepointsForAutomMerdbSnapshotStobackupredis; 2.locateTheDump.rdbfileviaconfigandCopyitsECurely; 3.Torestore, Stopredis, remplaceTheRDBfile, AssurezProperperMissions, redémarrer, et GreredleaFinable

Comment vider une base de données Redis ou toutes les bases de données? Comment vider une base de données Redis ou toutes les bases de données? Sep 24, 2025 am 01:30 AM

UseflushdbtoClearTheCurrentDatabaseorflushallForAllDatabases; modes d'ORSYNC (blocage) BothSupportAsync (arrière-plan), avec AsyncpreferreDinProductionToAvoidlatence.

Comment intégrer Redis avec une application Spring Boot? Comment intégrer Redis avec une application Spring Boot? Sep 19, 2025 am 01:28 AM

Ajoutez d'abord les dépendances de SpringDataredis, puis définissez les informations de connexion Redis dans le fichier de configuration, puis activez le cache via @EnableCaching et utilisez des annotations de cache, et enfin fonctionnez des données via Redetemplate ou StringRedistemplate pour réaliser le cache, le stockage de session ou l'accès aux données à grande vitesse.

Quel modèle de persistance dois-je choisir pour mon application? Quel modèle de persistance dois-je choisir pour mon application? Sep 15, 2025 am 01:13 AM

Le choix d'un modèle de persistance nécessite des compromis en fonction des exigences d'application, du comportement de charge et du type de données. Les modèles communs incluent la mémoire uniquement (rapide mais non durable), le stockage du disque (lent mais persistant), le mode hybride (à la fois la vitesse et durable) et l'écriture-pré-log (persistance élevée). Si vous traitez les données clés, vous devez choisir une base de données WAL ou ACID; Si vous pouvez tolérer une petite quantité de perte de données, vous pouvez choisir une mémoire ou un modèle hybride. Dans le même temps, considérons la complexité du fonctionnement et de la maintenance, telles que les environnements cloud, vous devez choisir une bonne solution intégrée. Les erreurs courantes doivent être évitées, comme le traitement par erreur des instantanés comme des garanties durables, en ignorant les tests de récupération des accidents, la fréquence de synchronisation sans tir, etc. En bref, il est essentiel de clarifier les priorités et d'effectuer des tests de scénario d'exception.

Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT) Comment estimer le nombre unique d'un grand ensemble de données avec Hyperloglog? (PFADD, PFCOUNT) Sep 24, 2025 am 03:04 AM

Hyperloglog fournit une méthode d'estimation de nombre unique et rapide et rapide dans Redis via les commandes PFADD et PFCount. 1. Hyperloglog est un algorithme de probabilité utilisé pour estimer le nombre d'éléments différents dans l'ensemble de données. Il ne nécessite qu'une petite quantité de mémoire fixe pour traiter les ensembles de données à grande échelle. Il convient au suivi des visiteurs indépendants ou des requêtes de recherche haute fréquence et d'autres scénarios; 2. PFADD est utilisé pour ajouter des éléments à Hyperloglog, et PfCount renvoie la valeur d'estimation de l'élément unique dans une ou plusieurs structures; 3. Utiliser des noms de clés significatifs, l'ajout de valeurs de chaîne directement et la fusion de plusieurs HLL pour éviter les calculs répétés sont les meilleures pratiques pour l'utilisation de PFADD et PFCount; 4. Hyperlo

Comment installer Redis sur Ubuntu? Comment installer Redis sur Ubuntu? Sep 20, 2025 am 12:52 AM

L'installation de redis peut être effectuée via APT ou du code source, et APT est plus simple; 2. Mettez à jour l'index du package et installez Redis-Server; 3. Démarrer et activer le star de l'auto-mise à pied; 4. Utilisez Redis-Cliping pour tester Pong; 5. Fichiers de configuration facultatifs pour ajuster les liaisons, les mots de passe, etc.; 6. Redémarrez le service et complétez l'installation.

See all articles