メインコンテンツまでスキップ

CollectionTTL object API リファレンス

CollectionTtl型は、コレクションに対して書き込み操作を行うときに使用します。

コレクションを更新するときに、TTLを更新したいことがあります。また、TTLをそのままにしたい場合もあります。この場合 パラメータでこの動作を指定できます。

デフォルトの動作は、書き込み操作が発生するたびにコレクションTTLがリセットされることです。dictionaryFetchlistLengthのような読み取り操作を行う場合は、CollectionTTLオブジェクトを指定することはできません。

Momento Cache での TTL の動作については、Expire Data with TTL を参照してください。

注意

CollectionTTLはコレクション全体のTTLを指定するもので、コレクション内の個々の要素のTTLを設定するためのものではありません。コレクションが期限切れにならなければ、コレクション内の要素は期限切れになりません。

Compatible data types

CollectionTTL オブジェクトは、以下の コレクションデータ型 と互換性があります:

下の図が示すように、コレクションはelementsを含むことができるitemsとみなされます。

Collection data types drawing | Momento Cache

デフォルトの動作

  • コレクションへの書き込み操作では、 CollectionTtl パラメータは省略可能です。
  • コレクションTTLが指定されない場合、デフォルトの CollectionTtl.fromCacheTtl() が使用されます。この値はキャッシュクライアントで設定されているデフォルトのTTLです。
  • コレクションのTTLは、コレクションが変更されるたびに更新されます。

デフォルト以外の動作が必要な場合は、コレクションの書き込み操作にCollectionTtlオブジェクトを指定できます。

書き込み操作時にコレクションをリフレッシュするTTLを明示的に指定するには、 CollectionTtl.of() を使用します:

CollectionTtl.of(20 * 60); // 20 minutes

これは、コンストラクタを直接呼び出すのと同等の便利なメソッドです:

const ttlSeconds = 20 * 60; // 20 minutes
const refreshTtl = true;
new CollectionTtl(ttlSeconds, refreshTtl);

コレクションが作成されたときだけTTLを設定し、それ以降の書き込みではリフレッシュしないようにしたい場合は、withNoRefreshTtlOnUpdates()を使用します:

CollectionTtl.of(20 * 60).withNoRefreshTtlOnUpdates(); // 20 minutes, only when collection is created

これもまた、コンストラクターを直接呼び出すのと同等の便利なメソッドです:

const ttlSeconds = 20 * 60; // 20 minutes
const refreshTtl = false;
new CollectionTtl(ttlSeconds, refreshTtl);

コンストラクタのパラメータ

  • ttl: duration - (オプション)
    • TTL が与えられない場合、現在のクライアント接続オブジェクトに設定されている TTL が使用されます。
  • refreshTtl: boolean = true - (オプション) * true を指定すると、コレクションの TTL は指定した値にリセットされます。
    • trueを指定すると、コレクションのTTLは指定された値にリセットされます。
    • falseに設定すると、コレクションに設定されている既存のTTLが保持されます。

追加のコンストラクター

  • fromCacheTtl(): CollectionTtl - クライアントの TTL を使います。 CollectionTtl(null, true) と同じです。
  • of(ttl: duration): CollectionTtl - CollectionTtl(ttl, true)と同じです。
  • refreshTtlIfProvided(ttl?: duration): CollectionTtl - 値が指定された場合、コレクションのTTLをリフレッシュする。値が提供されない場合、TTLはリフレッシュされません。

インスタンスメソッド

  • ttlSeconds(): duration - TTL を秒で返します。
  • ttlMilliseconds(): duration - TTL をミリ秒で返します。
  • refreshTtl(): boolean - アイテムが変更された際に TTL を更新するかどうかを設定します。
  • withRefreshTtlOnUpdates(): CollectionTtl - コピーで、リフレッシュは true です。
  • withNoRefreshTtlOnUpdates(): CollectionTtl - コピーで、リフレッシュは false です。
  • toString(): TTL (秒) と refreshTtl の設定を表示する。