

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Indicateurs de requête Gremlin pour l'utilisation du cache de résultats
<a name="gremlin-query-hints-results-cache"></a>

Les indicateurs de requête suivants peuvent être utilisés lorsque le [cache des résultats de requête](gremlin-results-cache.md) est activé.

## Indicateur de requête Gremlin `enableResultCache`
<a name="gremlin-query-hints-results-cache-enableResultCache"></a>

Lorsque l'indicateur de requête `enableResultCache` a une valeur égale à `true`, les résultats de la requête sont renvoyés à partir du cache s'ils ont déjà été mis en cache. Dans le cas contraire, de nouveaux résultats sont renvoyés et mis en cache jusqu'à ce qu'ils soient effacés de celui-ci. Par exemple :

```
g.with('Neptune#enableResultCache', true)
 .V().has('genre','drama').in('likes')
```

Plus tard, vous pourrez accéder aux résultats mis en cache en émettant à nouveau exactement la même requête.

Si la valeur de cet indicateur de requête est `false` ou si elle n'est pas présente, les résultats de la requête ne sont pas mis en cache. Toutefois, l'utilisation du paramètre `false` n'efface pas les résultats mis en cache existants. Pour effacer les résultats mis en cache, utilisez l'indicateur `invalidateResultCache` ou `invalidateResultCachekey`.

## Indicateur de requête Gremlin `enableResultCacheWithTTL`
<a name="gremlin-query-hints-results-cache-enableResultCacheWithTTL"></a>

L'indicateur de requête `enableResultCacheWithTTL` renvoie également les résultats mis en cache s'il y en a, sans affecter la durée de vie (TTL) des résultats déjà présents dans le cache. S'il n'y a actuellement aucun résultat mis en cache, la requête renvoie de nouveaux résultats et les met en cache pendant la durée de vie (TTL) spécifiée par l'indicateur de requête `enableResultCacheWithTTL`. Cette durée de vie est spécifiée en secondes. Par exemple, la requête suivante spécifie une durée de vie de 60 secondes :

```
g.with('Neptune#enableResultCacheWithTTL', 60)
 .V().has('genre','drama').in('likes')
```

Avant la fin des 60 secondes time-to-live, vous pouvez utiliser la même requête (ici`g.V().has('genre','drama').in('likes')`) avec l'indice `enableResultCache` ou l'indice de `enableResultCacheWithTTL` requête pour accéder aux résultats mis en cache.

**Note**  
La durée de vie spécifiée avec `enableResultCacheWithTTL` n'affecte pas les résultats déjà mis en cache.  
Si les résultats ont déjà été mis en cache avec `enableResultCache`, le cache doit d'abord être explicitement vidé avant qu'`enableResultCacheWithTTL` génère de nouveaux résultats et les mette en cache pour le TTL qu'il spécifie.
Si les résultats ont déjà été mis en cache à l'aide de l'indicateur `enableResultCachewithTTL`, cette durée de vie précédente, ou TTL, doit d'abord expirer avant qu'`enableResultCacheWithTTL` génère de nouveaux résultats et les mette en cache pour la durée de vie qu'il spécifie.

Une fois la durée de vie écoulée, les résultats mis en cache pour la requête sont effacés, et toute instance ultérieure de la même requête renverra de nouveaux résultats. Si `enableResultCacheWithTTL` est attaché à cette requête ultérieure, les nouveaux résultats sont mis en cache avec le TTL spécifié.

## Indicateur de requête Gremlin `invalidateResultCacheKey`
<a name="gremlin-query-hints-results-cache-invalidateResultCacheKey"></a>

L'indicateur de requête `invalidateResultCacheKey` peut avoir la valeur `false` ou `true`. Une valeur `true` entraîne l'effacement des résultats mis en cache pour la requête à laquelle `invalidateResultCacheKey` est attaché. Par exemple, dans l'exemple suivant, les résultats mis en cache pour la clé de requête `g.V().has('genre','drama').in('likes')` sont effacés :

```
g.with('Neptune#invalidateResultCacheKey', true)
 .V().has('genre','drama').in('likes')
```

L'exemple de requête ci-dessus n'entraîne pas la mise en cache de ses nouveaux résultats. Vous pouvez inclure `enableResultCache` (ou `enableResultCacheWithTTL`) dans la même requête si vous souhaitez mettre en cache les nouveaux résultats après avoir effacé les résultats existants dans le cache :

```
g.with('Neptune#enableResultCache', true)
 .with('Neptune#invalidateResultCacheKey', true)
 .V().has('genre','drama').in('likes')
```

## Indicateur de requête Gremlin `invalidateResultCache`
<a name="gremlin-query-hints-results-cache-invalidateResultCache"></a>

L'indicateur de requête `invalidateResultCache` peut avoir la valeur `false` ou `true`. Une valeur `true` entraîne l'effacement de tous les résultats du cache de résultats. Par exemple :

```
g.with('Neptune#invalidateResultCache', true)
 .V().has('genre','drama').in('likes')
```

L'exemple de requête ci-dessus n'entraîne pas la mise en cache de ses résultats. Vous pouvez inclure `enableResultCache` (ou `enableResultCacheWithTTL`) dans la même requête si vous souhaitez mettre en cache les nouveaux résultats après avoir entièrement vidé le cache existant :

```
g.with('Neptune#enableResultCache', true)
 .with('Neptune#invalidateResultCache', true)
 .V().has('genre','drama').in('likes')
```

## Indicateur de requête Gremlin `numResultsCached`
<a name="gremlin-query-hints-results-cache-numResultsCached"></a>

L'indicateur de requête `numResultsCached` ne peut être utilisé qu'avec les requêtes contenant `iterate()`. Il indique le nombre maximal de résultats à mettre en cache pour la requête à laquelle il est attaché. Notez que les résultats mis en cache lorsque `numResultsCached` est présent ne sont pas renvoyés, mais uniquement mis en cache.

Par exemple, la requête suivante spécifie que jusqu'à 100 de ses résultats doivent être mis en cache, mais aucun de ces résultats mis en cache n'est renvoyé :

```
g.with('Neptune#enableResultCache', true)
 .with('Neptune#numResultsCached', 100)
 .V().has('genre','drama').in('likes').iterate()
```

Vous pouvez ensuite utiliser une requête comme celle-ci pour récupérer une série de résultats mis en cache (ici, les dix premiers) :

```
g.with('Neptune#enableResultCache', true)
 .with('Neptune#numResultsCached', 100)
 .V().has('genre','drama').in('likes').range(0, 10)
```

## Indicateur de requête Gremlin `noCacheExceptions`
<a name="gremlin-query-hints-results-cache-noCacheExceptions"></a>

L'indicateur de requête `noCacheExceptions` peut avoir la valeur `false` ou `true`. Une valeur `true` entraîne la suppression de toutes les exceptions liées au cache de résultats. Par exemple :

```
g.with('Neptune#enableResultCache', true)
 .with('Neptune#noCacheExceptions', true)
 .V().has('genre','drama').in('likes')
```

Elle supprime notamment l'exception `QueryLimitExceededException`, qui est déclenchée si les résultats d'une requête sont trop volumineux pour tenir dans le cache de résultats.