結果キャッシュを使用するための Gremlin クエリのヒント - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

結果キャッシュを使用するための Gremlin クエリのヒント

次のクエリヒントは、クエリ結果キャッシュが有効である。

GremlinenableResultCacheクエリヒント

-enableResultCacheの値を持つクエリヒントtrueは、クエリの結果がすでにキャッシュされている場合、キャッシュから返されます。そうでない場合は、新しい結果を返し、キャッシュからクリアされるまでキャッシュします。例:

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

後で、まったく同じクエリを再度発行することで、キャッシュされた結果にアクセスできます。

このクエリヒントの値がfalse、または存在しない場合、クエリ結果はキャッシュされません。ただし、それをfalseは、既存のキャッシュされた結果をクリアしません。キャッシュされた結果をクリアするには、invalidateResultCacheまたはinvalidateResultCachekeyヒント。

GremlinenableResultCacheWithTTLクエリヒント

-enableResultCacheWithTTLクエリヒントは、キャッシュ済みの結果の TTL に影響を与えずに、キャッシュされた結果があればそれを返します。現在キャッシュされた結果がない場合、クエリは新しい結果を返し、enableResultCacheWithTTLクエリヒント。その存続時間は秒単位で指定します。たとえば、次のクエリでは、存続時間を 60 秒に指定します。

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

60秒の存続時間が終わる前に、同じクエリ(ここでは、g.V().has('genre','drama').in('likes')) のいずれかでenableResultCacheまたはenableResultCacheWithTTLクエリヒントを使用して、キャッシュされた結果にアクセスします。

注記

で指定されている存続時間enableResultCacheWithTTLは、すでにキャッシュされている結果には影響しません。

  • 結果が以前使用してキャッシュされていた場合enableResultCacheの場合、キャッシュは最初に明示的にクリアされなければなりませんenableResultCacheWithTTLは新しい結果を生成し、指定した TTL に対してそれらをキャッシュします。

  • 結果が以前使用してキャッシュされていた場合enableResultCachewithTTLに設定されている場合、その前のTTLは最初にenableResultCacheWithTTLは新しい結果を生成し、指定した TTL に対してそれらをキャッシュします。

存続時間が経過すると、クエリのキャッシュされた結果がクリアされ、同じクエリの後続インスタンスが新しい結果を返します。もしenableResultCacheWithTTLが後続のクエリにアタッチされると、新しい結果は指定された TTL でキャッシュされます。

GremlininvalidateResultCacheKeyクエリヒント

-invalidateResultCacheKeyクエリヒントは、trueまたはfalse値. Atrue値を指定すると、クエリの結果がキャッシュされます。invalidateResultCacheKeyクリアするためにアタッチされています。たとえば、次の例では、クエリキー用にキャッシュされた結果を引き起こします。g.V().has('genre','drama').in('likes')クリアする:

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

上記のクエリ例では、新しい結果がキャッシュされることはありません。あなたは含めることができますenableResultCache(またはenableResultCacheWithTTL)は、既存のキャッシュされた結果をクリアした後に新しい結果をキャッシュする場合は、同じクエリに入力します。

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

GremlininvalidateResultCacheクエリヒント

-invalidateResultCacheクエリヒントは、trueまたはfalse値. Atrueの値を指定すると、結果キャッシュ内のすべての結果がクリアされます。例:

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

上記の例のクエリは、その結果がキャッシュされる原因ではありません。あなたは含めることができますenableResultCache(またはenableResultCacheWithTTL)を、既存のキャッシュを完全にクリアした後に新しい結果をキャッシュする場合は、同じクエリで置き換えます。

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

GremlinnumResultsCachedクエリヒント

-numResultsCachedクエリヒントは、iterate()に設定され、アタッチ先のクエリに対してキャッシュする結果の最大数を指定します。キャッシュされた結果は、numResultsCachedが存在する場合は返されず、キャッシュされるだけです。

たとえば、次のクエリでは、結果が最大 100 個までキャッシュされますが、キャッシュされた結果は返されません。

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

次に、次のようなクエリを使用して、キャッシュされた結果の範囲(ここでは最初の10個)を取得できます。

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

GremlinnoCacheExceptionsクエリヒント

-noCacheExceptionsクエリヒントは、trueまたはfalse値. Atrue値を指定すると、結果キャッシュに関連する例外はすべて抑制されます。例:

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

特に、これはQueryLimitExceededExceptionです。これは、クエリの結果が大きすぎて結果キャッシュに収まらない場合に発生します。