

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Hint di query Gremlin per l'utilizzo della cache dei risultati
<a name="gremlin-query-hints-results-cache"></a>

I seguenti hint di query possono essere utilizzati quando è abilitata la [cache dei risultati delle query](gremlin-results-cache.md).

## Hint di query Gremlin `enableResultCache`
<a name="gremlin-query-hints-results-cache-enableResultCache"></a>

L'hint di query `enableResultCache` con valore `true` fa sì che i risultati della query vengano restituiti dalla cache se sono già stati memorizzati nella cache. In caso contrario, restituisce i nuovi risultati e li memorizza nella cache fino a quando non vengono cancellati dalla cache. Esempio:

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

Successivamente, è possibile accedere ai risultati memorizzati nella cache eseguendo di nuovo esattamente la stessa query.

Se il valore di questo hint di query è `false` o se non è presente, i risultati della query non vengono memorizzati nella cache. Tuttavia, impostando il valore su `false` non si cancellano i risultati esistenti memorizzati nella cache. Per cancellare i risultati memorizzati nella cache, usare l'hint `invalidateResultCache` o `invalidateResultCachekey`.

## Hint di query Gremlin `enableResultCacheWithTTL`
<a name="gremlin-query-hints-results-cache-enableResultCacheWithTTL"></a>

L'hint di query `enableResultCacheWithTTL` restituisce anche i risultati memorizzati nella cache, se presenti, senza influire sul TTL dei risultati già presenti nella cache. Se attualmente non sono presenti risultati nella cache, la query restituisce nuovi risultati e li memorizza nella cache per il time to live (TTL) specificato dall'hint di query `enableResultCacheWithTTL`. Il time to live è specificato in secondi. Ad esempio, la seguente query specifica un time to live di sessanta secondi:

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

Prima che siano trascorsi 60 secondi time-to-live, puoi usare la stessa query (qui`g.V().has('genre','drama').in('likes')`) con il suggerimento `enableResultCache` o la `enableResultCacheWithTTL` query per accedere ai risultati memorizzati nella cache.

**Nota**  
Il time to live specificato con `enableResultCacheWithTTL` non influisce sui risultati che sono già stati memorizzati nella cache.  
Se i risultati sono stati precedentemente memorizzati nella cache utilizzando `enableResultCache`, la cache deve essere cancellata in modo esplicito prima che `enableResultCacheWithTTL` generi nuovi risultati e li memorizzi nella cache per il TTL specificato.
Se i risultati sono stati precedentemente memorizzati nella cache utilizzando `enableResultCachewithTTL`, il TTL precedente deve scadere prima che `enableResultCacheWithTTL` generi nuovi risultati e li memorizzi nella cache per il TTL specificato.

Una volta trascorso il time to live, i risultati della query memorizzati nella cache vengono cancellati e un'istanza successiva della stessa query restituisce nuovi risultati. Se `enableResultCacheWithTTL` è associato alla query successiva, i nuovi risultati vengono memorizzati nella cache con il TTL specificato.

## Hint di query Gremlin `invalidateResultCacheKey`
<a name="gremlin-query-hints-results-cache-invalidateResultCacheKey"></a>

L'hint di query `invalidateResultCacheKey` può accettare il valore `true` o `false`. Il valore `true` fa sì che i risultati memorizzati nella cache per la query a cui `invalidateResultCacheKey` è associato vengano cancellati. Ad esempio, l'esempio seguente fa sì che i risultati memorizzati nella cache per la chiave di query `g.V().has('genre','drama').in('likes')` vengano cancellati:

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

La query di esempio precedente non fa sì che i nuovi risultati vengano memorizzati nella cache. È possibile includere `enableResultCache` (o `enableResultCacheWithTTL`) nella stessa query se si desidera memorizzare nella cache i nuovi risultati dopo aver cancellato quelli esistenti:

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

## Hint di query Gremlin `invalidateResultCache`
<a name="gremlin-query-hints-results-cache-invalidateResultCache"></a>

L'hint di query `invalidateResultCache` può accettare il valore `true` o `false`. Il valore `true` fa sì che tutti i risultati nella cache dei risultati vengano cancellati. Esempio:

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

La query di esempio precedente non fa sì che i relativi risultati vengano memorizzati nella cache. È possibile includere `enableResultCache` (o `enableResultCacheWithTTL`) nella stessa query se si desidera memorizzare nella cache i nuovi risultati dopo aver cancellato completamente la cache esistente:

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

## Hint di query Gremlin `numResultsCached`
<a name="gremlin-query-hints-results-cache-numResultsCached"></a>

L'hint di query `numResultsCached` può essere utilizzato solo con le query che contengono `iterate()` e specifica il numero massimo di risultati da memorizzare nella cache per la query a cui è associato. Si not che i risultati memorizzati nella cache quando è presente `numResultsCached` non vengono restituiti, ma solo memorizzati nella cache.

Ad esempio, la seguente query specifica che devono essere memorizzati nella cache fino a 100 risultati, ma nessuno di questi risultati memorizzati nella cache viene restituito:

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

È quindi possibile utilizzare una query come la seguente per recuperare un intervallo di risultati memorizzati nella cache (in questo caso i primi dieci):

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

## Hint di query Gremlin `noCacheExceptions`
<a name="gremlin-query-hints-results-cache-noCacheExceptions"></a>

L'hint di query `noCacheExceptions` può accettare il valore `true` o `false`. Il valore `true` causa l'eliminazione di tutte le eccezioni relative alla cache dei risultati. Esempio:

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

In particolare, elimina l'eccezione `QueryLimitExceededException`, che viene generato se i risultati di una query sono troppo grandi per essere inseriti nella cache dei risultati.