選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用結果快取的 Gremlin 查詢提示

焦點模式
使用結果快取的 Gremlin 查詢提示 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

啟用查詢結果快取時,可以使用下列查詢提示。

Gremlin enableResultCache 查詢提示

值為 trueenableResultCache 查詢提示會導致從快取傳回這些結果 (如果已快取它們的話)。如果沒有,它會傳回新的結果並快取它們,直到它們從快取中清除。例如:

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

稍後,您可以再次發出完全相同的查詢來存取快取的結果。

如果此查詢提示的值為 false,或者如果它不存在,則不會快取查詢結果。不過,將其設定為 false 不會清除現有的快取結果。若要清除快取的結果,請使用 invalidateResultCacheinvalidateResultCachekey 提示。

Gremlin enableResultCacheWithTTL 查詢提示

enableResultCacheWithTTL 查詢提示也會傳回快取的結果 (如果有的話),而不會影響已在快取中的結果的 TTL。如果目前沒有快取的結果,查詢會傳回新的結果,並快取這些結果,存留時間為 enableResultCacheWithTTL 查詢提示所指定的存留時間 (TTL)。該存留時間是以秒為單位指定的。例如,下列查詢會指定 60 秒的存留時間:

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

在 60 秒的存留時間結束之前,您可以搭配 enableResultCacheenableResultCacheWithTTL 查詢提示使用相同的查詢 (此處的 g.V().has('genre','drama').in('likes')) 來存取快取的結果。

注意

使用 enableResultCacheWithTTL 指定的存留時間不會影響已快取的結果。

  • 如果之前已使用 enableResultCache 快取結果,則必須先明確地清除此快取,然後 enableResultCacheWithTTL 才能產生新結果,並快取它們,存留時間為其指定的 TTL。

  • 如果之前已使用 enableResultCachewithTTL 快取結果,則先前的 TTL 必須先過期,然後 enableResultCacheWithTTL 才能產生新結果,並快取它們,存留時間為其指定的 TTL。

在存留時間過後,會清除查詢的快取結果,然後相同查詢的後續執行個體會傳回新的結果。如果 enableResultCacheWithTTL 附加至該後續查詢,則會快取新結果,存留時間為其指定的 TTL 。

Gremlin invalidateResultCacheKey 查詢提示

invalidateResultCacheKey 查詢提示可以採取 truefalse 值。true 值會導致清除附加 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')

Gremlin invalidateResultCache 查詢提示

invalidateResultCache 查詢提示可以採取 truefalse 值。true 值會導致清除結果快取中的所有結果。例如:

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')

Gremlin numResultsCached 查詢提示

numResultsCached 查詢提示只能與包含 iterate() 的查詢搭配使用,而且它會針對其所附加的查詢指定要快取的結果數目上限。請注意,numResultsCached 存在時快取的結果不會傳回,只會快取。

例如,下列查詢會指定應快取其最多 100 個結果,但不會傳回任何快取的結果:

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

然後,您可以使用如下的查詢來擷取一系列快取的結果 (此處為前十個):

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

Gremlin noCacheExceptions 查詢提示

noCacheExceptions 查詢提示可以採取 truefalse 值。true 值會導致隱藏與結果快取相關的任何例外狀況。例如:

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

尤其,這會隱藏 QueryLimitExceededException,如果查詢的結果太大而無法容納在結果快取中,就會引發此例外狀況。

下一個主題:

查詢狀態

上一個主題:

useDFE
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。