Analyse des causes?: double suppression retardée du cache Redis
Aug 24, 2022 pm 05:34 PMApprentissage recommandé?: Tutoriel vidéo Redis
Pourquoi le cache est-il supprimé au lieu d'être mis à jour??
S'il s'agit d'une mise à jour et qu'il y a un problème de transaction distribuée, le cache peut être modifié et la modification de la base de données peut échouer. Si vous supprimez simplement le cache, même si la modification de la base de données échoue, la requête suivante récupérera directement les données de la base de données et aucune donnée sale n'appara?tra.
Qu'est-ce que la double suppression différée??
C'est-à-dire que lors de l'ajout, de la suppression ou de la modification d'une classe d'entité, le cache de la classe d'entité doit être vidé. La position d'effacement est avant et après la méthode de fonctionnement de la base de données.
Adopter la méthode de preuve par contradiction
Supprimer uniquement en premier
???
Supprimer uniquement plus tard
Conclusion
Ainsi, on peut conclure qu'il y a des problèmes avec les deux pré-suppression et post-suppression. La stratégie de double suppression retardée est donc adoptée
Pensée 2 : Pourquoi est-elle retardée
C'est encore une preuve par contradiction. La situation dans l'image ci-dessous est une situation dans laquelle l'ancien cache existe toujours après une double suppression. Le délai consiste à garantir que les modifications du cache des autres transactions ont été terminées avant de modifier la base de données -> vider le cache.
Supplément : Pourquoi devrions-nous retarder la double suppression pour assurer la cohérence du cache ? : Il s'agit de garantir que pendant l'intervalle entre la modification des données de la base de données et la suppression des données Redis, s'il y a un succès, il est garanti que cela les données n'existent pas dans Redis. Sans cette suppression, lorsque les données de la base de données ont été modifiées, les anciennes données peuvent toujours être lues à partir de Redis, ce qui entra?ne une incohérence des données. La deuxième suppression a lieu après la modification des données de la base de données. à ce stade, les données correspondantes dans redis doivent être à nouveau supprimées. Cette fois, il s'agit de supprimer les données entre la première suppression de redis et la modification des données de la base de données. est une demande, alors les anciennes données seront à nouveau supprimées. Elles seront remises en cache dans Redis, mais les données de la base de données seront ensuite modifiées. Si elles ne sont pas supprimées cette fois, les anciennes données de la base de données existeront dans. redis.
Alors pourquoi devez-vous retarder la suppression de Redis pendant un certain temps après la deuxième modification de la base de données ? Afin d'attendre la lecture précédente de la base de données, attendez que les données soient écrites dans le cache, et enfin supprimez les données sales, c'est donc le moment où les données sont envoyées de la base de données au serveur + écriture du cache- Mais double suppression retardée, le délai est très difficile à déterminer, donc la double suppression retardée n'est pas recommandée
- Selon des considérations globales, même si la base de données est d'abord modifiée, après la suppression du cache, il y a Il y aura une certaine période de temps pendant laquelle les anciennes données seront lues, ce qui est généralement tolérable. Tant que le cache est supprimé à temps, les autres threads peuvent lire la dernière valeur.
Dans le même temps, afin de garantir que le cache sera supprimé, vous pouvez utiliser mq pour garantir que le cache sera supprimé
Tutoriel vidéo 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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Sujets chauds









Laravel 8 fournit les options suivantes pour l'optimisation des performances: Configuration du cache: utilisez Redis pour cache des pilotes, des fa?ades de cache, des vues de cache et des extraits de page. Optimisation de la base de données: établissez l'indexation, utilisez la portée de la requête et utilisez des relations éloquentes. Optimisation JavaScript et CSS: utilisez le contr?le de version, fusionnez et rétractable, utilisez CDN. Optimisation du code: utilisez le package d'installation du compositeur, utilisez les fonctions Laravel Helper et suivez les normes PSR. Surveillance et analyse: utilisez Laravel Scout, utilisez le télescope, surveillez les mesures d'application.

Comment la solution de mise en cache Redis réalise-t-elle les exigences de la liste de classement des produits? Pendant le processus de développement, nous devons souvent faire face aux exigences des classements, comme l'affichage d'un ...

Dans Springboot, utilisez Redis pour mettre en cache l'objet OAuth2Authorisation. Dans l'application Springboot, utilisez SpringSecurityoAuth2AuthorizationsServer ...

Les packages d'extension Laravel essentiels pour 2024 incluent: 1. Laraveldebugbar, utilisé pour surveiller et déboguer le code; 2. Laraveltelescope, fournissant une surveillance détaillée des applications; 3. Laravelhorizon, gérant les taches de file d'attente Redis. Ces packs d'extension peuvent améliorer l'efficacité du développement et les performances des applications.

Les étapes pour créer un environnement Laravel sur différents systèmes d'exploitation sont les suivantes: 1.Windows: Utilisez XAMPP pour installer PHP et compositeur, configurer les variables environnementales et installer Laravel. 2.MAC: Utilisez Homebrew pour installer PHP et Composer et installer Laravel. 3.Linux: utilisez Ubuntu pour mettre à jour le système, installer PHP et compositeur et installer Laravel. Les commandes et chemins spécifiques de chaque système sont différents, mais les étapes de base sont cohérentes pour assurer la construction fluide de l'environnement de développement de Laravel.

Redis joue un r?le clé dans le stockage et la gestion des données, et est devenu le c?ur des applications modernes à travers ses multiples structures de données et mécanismes de persistance. 1) Redis prend en charge les structures de données telles que les cha?nes, les listes, les collections, les collections ordonnées et les tables de hachage, et convient au cache et à la logique métier complexe. 2) Grace à deux méthodes de persistance, RDB et AOF, Redis assure un stockage fiable et une récupération rapide des données.

La solution d'optimisation pour les taches de synchronisation Springboot dans un environnement multi-n?uds développe le ressort ...

Redis est un système de stockage de structure de données de mémoire, principalement utilisé comme base de données, cache et courtier de messages. Ses caractéristiques principales incluent un modèle unique, un multiplexage d'E / S, un mécanisme de persistance, des fonctions de réplication et de clustering. Redis est couramment utilisé dans les applications pratiques pour la mise en cache, le stockage de session et les files d'attente de messages. Il peut améliorer considérablement ses performances en sélectionnant la bonne structure de données, en utilisant des pipelines et des transactions, et en surveillant et en réglage.
