Maison  >  Article  >  base de données  >  Comment résoudre l'avalanche et la pénétration de Redis

Comment résoudre l'avalanche et la pénétration de Redis

(*-*)浩
(*-*)浩original
2019-11-27 10:45:354732parcourir

Comment résoudre l'avalanche et la pénétration de Redis

Pénétration du cache

La pénétration du cache fait référence à l'interrogation de données qui n'existent définitivement pas. Étant donné que le cache manque, les requêtes ultérieures sur la base de données ne peuvent pas. Les résultats de la requête ne seront pas écrits dans le cache, ce qui entraînera chaque requête à demander la base de données, provoquant une pénétration du cache (Apprentissage recommandé : Tutoriel vidéo Redis)

Comment résoudre lavalanche et la pénétration de Redis

Solution

Filtrage Bloom

Stockage de tous les paramètres de requête possibles sous forme de hachage, La vérification est effectuée en premier au niveau de la couche de contrôle, et jeté s'il ne correspond pas, évitant ainsi la pression des requêtes sur le système de stockage sous-jacent

mise en cache des objets vides

lors du stockage Après que la couche manque, même l'objet vide renvoyé sera mis en cache et un délai d'expiration sera défini. L'accès ultérieur aux données sera obtenu à partir du cache, protégeant la source de données back-end

Mais il y a deux problèmes avec ; cette méthode :

Si des valeurs nulles peuvent être mises en cache, cela signifie que le cache a besoin de plus d'espace pour stocker plus de clés, car il peut y avoir de nombreuses clés avec des valeurs nulles

Même si le délai d'expiration est défini pour des valeurs nulles, il y aura toujours une incohérence entre les données de la couche de cache et de la couche de stockage pendant un certain temps, ce qui sera problématique pour les entreprises qui doivent maintenir la cohérence.

Avalanche de cache

L'avalanche de cache signifie que, parce que la couche de cache transporte un grand nombre de requêtes, la couche de stockage est efficacement protégée, mais si la couche de cache dans son ensemble ne peut pas être utilisé pour certaines raisons. Pour fournir des services, toutes les demandes atteindront la couche de stockage et le nombre d'appels à la couche de stockage augmentera considérablement, provoquant également le blocage de la couche de stockage.

Comment résoudre lavalanche et la pénétration de Redis

Solution

Assurer la haute disponibilité des services de couche de cache

Même pour les particuliers Les nœuds, les machines individuelles ou même la salle informatique sont en panne, les services peuvent toujours être fournis. Par exemple, Redis Sentinel et Redis Cluster ont atteint une haute disponibilité.

Dépendez du composant d'isolation pour limiter et rétrograder le flux backend

Après l'expiration du cache, contrôlez le nombre de threads lisant la base de données et écrivant le cache via le verrouillage ou faire la queue. Par exemple, un seul thread est autorisé à interroger les données et à écrire dans le cache pour une certaine clé, tandis que les autres threads attendent.

Préchauffage des données

Vous pouvez utiliser le mécanisme de rechargement du cache pour mettre à jour le cache à l'avance, puis déclencher manuellement le chargement de différentes clés dans le cache avant un accès simultané important se produit et définissez un délai d'expiration différent, afin que le délai d'invalidation du cache soit aussi uniforme que possible.

Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne

Tutoriel de démarrage de Redis

pour apprendre !

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:
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