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é utilizando
enableResultCache
, primero hay que borrar la caché de forma explícita antes deenableResultCacheWithTTL
generar nuevos resultados y guardarlos en caché para el TTL tiempo que especifique.Si los resultados se almacenaron previamente en caché utilizando
enableResultCachewithTTL
, la versión anterior TTL debe caducar antes deenableResultCacheWithTTL
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.