«La mise en cache est la caractéristique la plus élémentaire et la plus puissante lorsque vous devez améliorer la vitesse des données récupérant à partir de diverses sources. La mise en cache tiendra toujours, que ce soit des applications lisant les données de la base de données ou de plusieurs pipelines écrivant des données à une source spécifique.
Bien que la mise en cache joue un rôle vital dans la récupération des données, cela peut entraîner des erreurs si le résultat incorrect est stocké dans le cache. Cela peut conduire les applications à accéder aux données du cache recevant de faux résultats.
Par conséquent, ce tutoriel vous montrera comment vous pouvez effacer le cache de votre cluster Elasticsearch en utilisant divers points de terminaison API."
Allons-y, allons-nous?
Types de cache Elasticsearch
Elasticsearch prend en charge trois principaux types de cache:
Cache de requête de nœud
Le cache de requête du nœud est un cache LRU accessible par tous les éclats sur un nœud donné. Ce type de cache stocke les résultats des requêtes utilisées dans le contexte du filtre. Elasticsearch supprimera les résultats mis en cache en fonction des valeurs les moins utilisées (LRU).
Cache de données de fragment
Ce type de cache est étendu sur une base d'éclat par shard. Comme le cache de requête de nœud, le cache de données Shard utilise le mode d'expulsion LRU. De plus, ce type de cache stocke les résultats des requêtes d'accès fréquemment.
Cache de données sur le terrain
Le cache de données sur le terrain, en revanche, est utilisé pour les opérations de tri et d'agrégation. Cela permet à Elasticsearch d'effectuer ces opérations rapidement et d'enregistrer la mémoire.
Remarque: Gardez à l'esprit qu'Elasticsearch configure et gère les règles de mise en cache en interne. Par conséquent, vous aurez rarement besoin de modifier manuellement les règles de mise en cache.
API de cache claire Elasticsearch Clear
Comme la plupart des opérations dans ElasticSearch, nous utilisons un point de terminaison API pour effectuer des opérations de rinçage de cache.
La syntaxe de demande est comme indiqué:
Post / _cache / clear
Avant d'utiliser ce point de terminaison de l'API, assurez-vous d'avoir les privilèges de gestion sur l'index cible, le flux de données ou l'alias.
Exemple 1- Elasticsearch Effacer le type de cache spécifique
L'exemple ci-dessous illustre comment effacer un type de cache spécifique. Les types de cache pris en charge comprennent:
Par exemple, pour effacer le cache FieldData, exécutez:
curl -xpost "http: // localhost: 9200 / _cache / clear?fieldData = true "-h" kbn-xsrf: reporting "
Vous devriez obtenir une sortie comme indiqué:
"_fragments":
"Total": 10,
"réussi": 10,
"Échec": 0
Pour effacer le cache de requête, exécutez:
curl -xpost "http: // localhost: 9200 / _cache / clear?query = true "-h" kbn-xsrf: reporting "
Sortie résultante:
"_fragments":
"Total": 10,
"réussi": 10,
"Échec": 0
Enfin, pour effacer le cache de demande, exécutez la requête:
curl -xpost "http: // localhost: 9200 / _cache / clear?request = true "-h" kbn-xsrf: reporting "
Sortir:
"_fragments":
"Total": 10,
"réussi": 10,
"Échec": 0
Exemple 2 - Effacer le cache pour un index spécifique
Au lieu d'effacer le cache pour tous les flux de données et indique à l'aide de l'API _Cache / Effective, vous pouvez spécifier un index spécifique que vous souhaitez effacer, comme indiqué dans la syntaxe ci-dessous:
POSTE // _cache / clear
Où la cible représente le nom de l'index que vous souhaitez utiliser.
Par exemple, pour effacer le cache de requête dans l'index du tremblement de terre, nous pouvons fonctionner:
curl -xpost "http: // localhost: 9200 / tremblement de terre / _cache / clear?request = true "-h" kbn-xsrf: reporting "
La sortie résultante est comme indiqué:
"_fragments":
"Total": 2,
"réussi": 2,
"Échec": 0
Exemple 3 - Cache effacer pour des champs spécifiques
Pour supprimer uniquement le cache pour des champs spécifiques dans un index donné, vous pouvez utiliser le paramètre des champs et spécifier les champs dont vous souhaitez effacer le cache comme des valeurs séparées par les virgules.
Par exemple, dans l'indice du tremblement de terre, nous avons des champs tels que la latitude, l'ampleur, la longitude, etc.
Pour effacer le cache de ces champs, nous pouvons courir:
curl -xpost "http: // localhost: 9200 / tremblement de terre / _cache / clear?champs = latitude, magnitude, longitude "-h" kbn-xsrf: reporting "
La demande ci-dessus doit effacer le cache des champs spécifiés et renvoyer un exemple de sortie comme indiqué:
"_fragments":
"Total": 2,
"réussi": 2,
"Échec": 0
Fermeture
Hourra. Dans cet article, vous découvrez le cache Elasticsearch, divers types de cache dans Elasticsearch, et plus. Vous avez également découvert comment vous pouvez effacer le cache pour un index Elasticsearch, effacer des types de cache spécifiques, le cache clair pour des champs particuliers, et plus.
Restez à l'écoute pour plus!