Façons d'améliorer le taux de succès du cache Redis_Redis

2020-02-14

Introduction au taux de réussite du cache

Hit: vous pouvez obtenir les données requises directement via le cache.

Manquant: les données souhaitées ne peuvent pas être obtenues directement à partir du cache. Vous devez interroger à nouveau la base de données ou effectuer d'autres opérations. La raison peut être que le cache n'existe pas du tout ou que le cache a expiré.

En général, plus le taux d'accès au cache est élevé, plus les avantages de l'utilisation du cache sont élevés, meilleures sont les performances de l'application (plus le temps de réponse est court et plus le débit est élevé), plus la capacité anti-concurrence est forte.

On peut voir que dans les systèmes Internet à haute concurrence, le taux d'accès au cache est un indicateur crucial.

Comment surveiller le taux d'accès au cache

Dans memcached, exécutez la commande state pour afficher les informations d'état du service memcached, où cmd_get représente le nombre total de fois get, get_hits représente le nombre total de temps get et le taux de succès = get_hits / cmd_get.

Bien sûr, nous pouvons également surveiller l'intégralité du cluster memcached via des outils tiers open source, et l'affichage sera plus intuitif. Les plus typiques incluent: zabbix, MemAdmin, etc.

Figure: Statistiques de surveillance de MemAdmin sur le taux de succès du service memcached.

97364-20161130125748162-436269984.png

De même, vous pouvez exécuter la commande info dans redis pour afficher les informations d'état du service redis, où keyspace_hits est le nombre total de hits, keyspace_misses est le nombre total de ratés et le hit rate = keyspace_hits / (keyspace_hits + keyspace_misses).

L'outil open source Redis-star peut visualiser les informations liées au service redis de manière graphique. En même temps, zabbix fournit également des plug-ins associés pour surveiller le service redis.

Plusieurs facteurs affectant le taux d'accès au cache

Dans le chapitre précédent, nous avons mentionné l'importance du taux d'accès au cache. Analysons plusieurs facteurs qui affectent le taux d'accès au cache.

Scénarios et exigences métier

La mise en cache convient aux scénarios d'entreprise "lire plus, écrire moins". En revanche, l'utilisation du cache n'est pas très significative et le taux de réussite sera très faible.

Les exigences métier déterminent les exigences de ponctualité, qui affectent directement le délai d'expiration du cache et la stratégie de mise à jour. Plus les délais sont courts, mieux c'est pour la mise en cache. Avec la même clé et le même nombre de demandes, plus le temps de cache est long, plus le taux de réussite est élevé.

La plupart des scénarios d'entreprise d'applications Internet sont bien adaptés à la mise en cache.

Conception du cache (granularité et stratégie)

En général, plus la granularité du cache est petite, plus le taux de réussite est élevé. Prenons un exemple pratique pour illustrer:

Lorsqu'un seul objet est mis en cache (par exemple, une seule information utilisateur), uniquement lorsque les données correspondant à l'objet changent, devons-nous mettre à jour le cache ou supprimer le cache. Lorsqu'une collection est mise en cache (par exemple: toutes les données utilisateur), lorsque les données correspondant à l'un des objets changent, le cache doit être mis à jour ou supprimé.

Il y a un autre cas, en supposant que les données correspondant à l'objet sont également nécessaires ailleurs (comme une seule information utilisateur est nécessaire ailleurs), si un seul objet est mis en cache, vous pouvez directement accéder au cache, sinon, Ne peut pas toucher directement. C'est plus flexible et le taux d'accès au cache sera plus élevé.

De plus, la politique de mise à jour / expiration du cache affecte également directement le taux d'accès au cache. Lorsque les données changent, la mise à jour directe de la valeur du cache aura un taux de réussite plus élevé que la suppression du cache (ou le laisser expirer). Bien sûr, la complexité du système sera également plus élevée.

Capacité et infrastructure de cache

Une capacité de cache limitée peut facilement entraîner l'invalidation et l'obsolescence du cache (la plupart des frameworks de cache ou middleware actuels utilisent l'algorithme LRU). Dans le même temps, la sélection de la technologie de cache est également très importante. Par exemple, l'utilisation du cache local intégré de l'application est plus sujette à des goulots d'étranglement autonomes, et l'utilisation du cache distribué est facile à développer après tout. Vous devez donc planifier la capacité de votre système et déterminer si elle est évolutive. De plus, différents cadres de cache ou middleware présentent des différences d'efficacité et de stabilité.

Autres facteurs

Lorsqu'un nœud de cache tombe en panne, il est nécessaire d'éviter l'invalidation du cache et de minimiser l'impact. Ce cas particulier doit également être pris en compte par l'architecte. L'approche la plus typique de l'industrie consiste à utiliser l'algorithme de hachage cohérent ou la redondance des nœuds.

Certains amis peuvent avoir ce malentendu: étant donné que les exigences métier imposent des exigences élevées sur la rapidité des données et que le temps de cache affectera le taux d'accès au cache, le système ne doit pas utiliser le cache. En fait, cela ignore un facteur de concurrence important. De manière générale, avec le même temps de cache et la même clé, plus la simultanéité est élevée, plus le gain de cache est élevé, même si le temps de cache est court.

Méthodes pour améliorer le taux d'accès au cache

Du point de vue de l'architecte, l'application doit obtenir autant que possible les données directement via le cache et éviter l'invalidation du cache. Il s'agit également d'un test de la capacité de l'architecte, qui doit être pris en compte et pesé dans tous les aspects tels que les exigences commerciales, la granularité du cache, la stratégie de cache et la sélection de la technologie. Concentrez-vous autant que possible sur les services de hotspot avec un accès haute fréquence et des exigences de faible actualité, et améliorez le taux de réussite au moyen du préchargement du cache (préchauffage), de l'augmentation de la capacité de stockage, de l'ajustement de la granularité du cache et de la mise à jour des caches.

Pour les applications avec une rapidité élevée (ou un espace de cache limité), de grandes étendues de contenu (ou un accès aléatoire) et un faible trafic, le taux d'accès au cache peut être faible pendant une longue période. Il avait expiré avant de devoir être visité.

www.xd1998.com@2001-2030Partage De Technologie