Dicas de consulta do Gremlin para usar o cache de resultados - Amazon Neptune

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

As dicas de consulta a seguir podem ser usadas quando o cache de resultados da consulta está habilitado.

Dica de consulta enableResultCache do Gremlin

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