

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Dicas de consulta do Gremlin para usar o cache de resultados
<a name="gremlin-query-hints-results-cache"></a>

As dicas de consulta a seguir podem ser usadas quando o [cache de resultados da consulta](gremlin-results-cache.md) está habilitado.

## Dica de consulta `enableResultCache` do Gremlin
<a name="gremlin-query-hints-results-cache-enableResultCache"></a>

A dica de consulta `enableResultCache` com um valor de `true` fará com que os resultados da consulta sejam gerados do cache se já tiverem sido armazenados em cache. Caso contrário, ela gerará novos resultados e os armazena em cache até que sejam limpos do cache. Por exemplo:

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

Posteriormente, é possível acessar os resultados em cache emitindo exatamente a mesma consulta novamente.

Se o valor dessa dica de consulta for `false`, ou se não estiver presente, os resultados da consulta não serão armazenados em cache. No entanto, configurá-lo como `false` não limpa os resultados existentes em cache. Para limpar os resultados em cache, use a dica `invalidateResultCache` ou `invalidateResultCachekey`.

## Dica de consulta `enableResultCacheWithTTL` do Gremlin
<a name="gremlin-query-hints-results-cache-enableResultCacheWithTTL"></a>

A dica de consulta `enableResultCacheWithTTL` também gera resultados em cache, se houver, sem afetar o TTL dos resultados que já estão no cache. Se no momento não houver resultados em cache, a consulta gerará novos resultados e os armazenará em cache pelo tempo de vida (TTL) especificado pela dica de consulta `enableResultCacheWithTTL`. Esse tempo de vida é especificado em segundos. Por exemplo, a seguinte consulta especifica um tempo de vida de sessenta segundos:

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

Antes que os 60 segundos time-to-live terminem, você pode usar a mesma consulta (aqui`g.V().has('genre','drama').in('likes')`) com a dica de consulta `enableResultCache` ou com a dica de `enableResultCacheWithTTL` consulta para acessar os resultados em cache.

**nota**  
O tempo de vida especificado com `enableResultCacheWithTTL` não afeta os resultados já armazenados em cache.  
Se os resultados tiverem sido previamente armazenados em cache usando `enableResultCache`, o cache deverá primeiro ser explicitamente limpo antes que o `enableResultCacheWithTTL` gere novos resultados e os armazene em cache para o TTL especificado.
Se os resultados tiverem sido previamente armazenados em cache usando `enableResultCachewithTTL`, o TTL anterior deverá primeiro expirar antes que o `enableResultCacheWithTTL` gere novos resultados e os armazene em cache para o TTL especificado.

Após o término do tempo de vida, os resultados em cache da consulta são apagados e uma instância subsequente da mesma consulta gera novos resultados. Se `enableResultCacheWithTTL` estiver associado à consulta subsequente, os novos resultados serão armazenados em cache com o TTL especificado.

## Dica de consulta `invalidateResultCacheKey` do Gremlin
<a name="gremlin-query-hints-results-cache-invalidateResultCacheKey"></a>

A dica de consulta `invalidateResultCacheKey` pode ter um valor `true` ou `false`. Um valor `true` faz com que os resultados em cache da consulta à qual `invalidateResultCacheKey` está associada sejam apagados. Por exemplo, o seguinte exemplo faz com que os resultados armazenados em cache para a chave de consulta `g.V().has('genre','drama').in('likes')` sejam apagados:

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

O exemplo de consulta acima não faz com que seus novos resultados sejam armazenados em cache. Será possível incluir `enableResultCache` (ou `enableResultCacheWithTTL`) na mesma consulta se quiser armazenar em cache os novos resultados depois de limpar os existentes em cache:

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

## Dica de consulta `invalidateResultCache` do Gremlin
<a name="gremlin-query-hints-results-cache-invalidateResultCache"></a>

A dica de consulta `invalidateResultCache` pode ter um valor `true` ou `false`. Um valor `true` faz com que todos os resultados no cache de resultados sejam apagados. Por exemplo:

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

O exemplo de consulta acima não faz com que seus resultados sejam armazenados em cache. Será possível incluir `enableResultCache` (ou `enableResultCacheWithTTL`) na mesma consulta se quiser armazenar em cache os novos resultados depois de limpar completamente o cache existente:

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

## Dica de consulta `numResultsCached` do Gremlin
<a name="gremlin-query-hints-results-cache-numResultsCached"></a>

A dica de consulta `numResultsCached` só pode ser usada com consultas que contenham `iterate()` e especifica o número máximo de resultados a serem armazenados em cache para a consulta à qual está associada. Observe que os resultados armazenados em cache quando `numResultsCached` está presente não são exibidos, apenas os armazenados em cache.

Por exemplo, a seguinte consulta especifica que até 100 dos resultados devem ser armazenados em cache, mas nenhum desses resultados deve ser gerado:

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

Depois, você pode usar uma consulta como a seguinte para recuperar uma variedade de resultados em cache (aqui, os dez primeiros):

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

## Dica de consulta `noCacheExceptions` do Gremlin
<a name="gremlin-query-hints-results-cache-noCacheExceptions"></a>

A dica de consulta `noCacheExceptions` pode ter um valor `true` ou `false`. Um valor `true` faz com que todas as exceções relacionadas ao cache de resultados sejam suprimidas. Por exemplo:

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

Especificamente, isso suprime a `QueryLimitExceededException`, que será gerada se os resultados de uma consulta forem grandes demais para caber no cache de resultados.