Indicateurs de requête Gremlin pour l'utilisation du cache de résultats - Amazon Neptune

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

Les indicateurs de requête suivants peuvent être utilisés lorsque le cache des résultats de requête est activé.

Indicateur de requête Gremlin enableResultCache

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

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 (icig.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

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

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

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

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.