Sugerencias de consulta de Gremlin para usar la caché de resultados - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Sugerencias de consulta de Gremlin para usar la caché de resultados

Las siguientes sugerencias de consulta se pueden utilizar cuando la caché de resultados de consultas está habilitada.

Sugerencia de consulta enableResultCache de Gremlin

La sugerencia de consulta enableResultCache con un valor de true hace que los resultados de la consulta se devuelvan desde la caché si ya se han almacenado en caché. De lo contrario, devuelve nuevos resultados y los almacena en caché hasta que se borren de la caché. Por ejemplo:

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

Luego, puede acceder a los resultados en caché emitiendo exactamente la misma consulta de nuevo:

Si el valor de esta sugerencia de consulta es false, o si no está presente, los resultados de la consulta no se almacenan en caché. Sin embargo, si se establece en false, no se borran los resultados en caché existentes. Para borrar los resultados en caché, use la sugerencia invalidateResultCache o invalidateResultCachekey.

Sugerencia de consulta enableResultCacheWithTTL de Gremlin

La sugerencia de enableResultCacheWithTTL consulta también devuelve los resultados en caché, si los hay, sin afectar a TTL los resultados que ya están en la caché. Si actualmente no hay resultados en caché, la consulta devuelve nuevos resultados y los guarda en caché durante el tiempo de vida (TTL) especificado en la enableResultCacheWithTTL sugerencia de consulta. Ese tiempo de vida se especifica en segundos. La consulta siguiente especifica un tiempo de vida de sesenta segundos:

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

Antes de que pasen los 60 segundos time-to-live, puedes usar la misma consulta (aquí,g.V().has('genre','drama').in('likes')) con la sugerencia de consulta enableResultCache o con la sugerencia de enableResultCacheWithTTL consulta para acceder a los resultados en caché.

nota

El tiempo de vida especificado con enableResultCacheWithTTL no afecta a los resultados que ya se hayan almacenado en caché.

  • Si los resultados se almacenaban previamente en caché utilizandoenableResultCache, primero hay que borrar la caché de forma explícita antes de enableResultCacheWithTTL generar nuevos resultados y guardarlos en caché para el TTL tiempo que especifique.

  • Si los resultados se almacenaron previamente en caché utilizandoenableResultCachewithTTL, la versión anterior TTL debe caducar antes de enableResultCacheWithTTL generar nuevos resultados y almacenarlos en la TTL memoria caché según lo especificado.

Una vez transcurrido el tiempo de vida, se borran los resultados de la consulta en caché y, a continuación, una instancia posterior de la misma consulta devuelve nuevos resultados. Si enableResultCacheWithTTL se adjunta a esa consulta posterior, los nuevos resultados se almacenan en caché con lo TTL que especifique.

Sugerencia de consulta invalidateResultCacheKey de Gremlin

La sugerencia de consulta invalidateResultCacheKey puede tomar un valor true o false. Un valor true hace que se borren los resultados en caché de la consulta a la que invalidateResultCacheKey está asociada. Por ejemplo, el siguiente ejemplo hace que se borren los resultados almacenados en caché para la clave de consulta g.V().has('genre','drama').in('likes'):

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

El ejemplo de consulta anterior no hace que sus nuevos resultados se almacenen en caché. Puede incluir enableResultCache (oenableResultCacheWithTTL) en la misma consulta si desea almacenar en caché los nuevos resultados después de borrar los existentes:

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

Sugerencia de consulta invalidateResultCache de Gremlin

La sugerencia de consulta invalidateResultCache puede tomar un valor true o false. Un valor true hace que se borren todos los resultados de la caché de resultados. Por ejemplo:

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

El ejemplo de consulta anterior no hace que sus nuevos resultados se almacenen en caché. Puede incluir enableResultCache (oenableResultCacheWithTTL) en la misma consulta si desea almacenar en caché los nuevos resultados después de borrar por completo la caché existente:

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

Sugerencia de consulta numResultsCached de Gremlin

La sugerencia de consulta numResultsCached solo se puede usar con consultas que contengan iterate() y especifica el número máximo de resultados que se guardarán en caché para la consulta a la que está asociada. Tenga en cuenta que los resultados almacenados en caché cuando numResultsCached está presente no se devuelven, solo se almacenan en caché.

Por ejemplo, la siguiente consulta especifica que se deben almacenar en caché hasta 100 de sus resultados, pero no se debe devolver ninguno de esos resultados en caché:

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

A continuación, puede utilizar una consulta como la siguiente para recuperar un rango de los resultados en caché (en este caso, los diez primeros):

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

Sugerencia de consulta noCacheExceptions de Gremlin

La sugerencia de consulta noCacheExceptions puede tomar un valor true o false. Un valor true hace que se suprima cualquier excepción relacionada con la caché de resultados. Por ejemplo:

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

En concreto, esto suprime la QueryLimitExceededException, que se activa si los resultados de una consulta son demasiado grandes para la caché de resultados.