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.
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 consulta enableResultCacheWithTTL
también devuelve los resultados en caché, si los hay, sin que ello afecte al TTL de 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 sugerencia de consulta enableResultCacheWithTTL
. 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 almacenados 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 almacenaron previamente en caché utilizando
enableResultCache
, primero se debe borrar explícitamente la caché antes de queenableResultCacheWithTTL
genere nuevos resultados y los almacene en caché durante el TTL que especifique.Si los resultados se almacenaron previamente en caché utilizando
enableResultCachewithTTL
, ese TTL anterior debe vencer primero antes de queenableResultCacheWithTTL
genere nuevos resultados y los almacene en caché durante el TTL que especifique.
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 asocia a la consulta posterior, los nuevos resultados se almacenan en caché con el 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.