CollectionTTL object API リファレンス
CollectionTtl型は、コレクションに対して書き込み操作を行うときに使用します。
コレクションを更新するときに、TTLを更新したいことがあります。また、TTLをそのままにしたい場合もあります。この場合 パラメータでこの動作を指定できます。
デフォルトの動作は、書き込み操作が発生するたびにコレクションTTLがリセットされることです。dictionaryFetch
やlistLength
のような読み取り操作を行う場合は、CollectionTTLオブジェクトを指定することはできません。
Momento Cache での TTL の動作については、Expire Data with TTL を参照してください。
CollectionTTLはコレクション全体のTTLを指定するもので、コレクション内の個々の要素のTTLを設定するためのものではありません。コレクションが期限切れにならなければ、コレクション内の要素は期限切れになりません。
Compatible data types
CollectionTTL オブジェクトは、以下の コレクションデータ型 と互換性があります:
下の図が示すように、コレクションはelements
を含むことができるitems
とみなされます。
デフォルトの動作
- コレクションへの書き込み操作では、
CollectionTtl
パラメータは省略可能です。 - コレクションTTLが指定されない場合、デフォルトの
CollectionTtl.fromCacheTtl()
が使用されます。この値はキャッシュクライアントで設定されているデフォルトのTTLです。 - コレクションのTTLは、コレクションが変更されるたびに更新されます。
例
デフォルト以外の動作が必要な場合は、コレクションの書き込み操作にCollectionTtlオブジェクトを指定できます。
書き込み操作時にコレクションをリフレッシュするTTLを明示的に指定するには、 CollectionTtl.of()
を使用します:
- JavaScript
CollectionTtl.of(20 * 60); // 20 minutes
これは、コンストラクタを直接呼び出すのと同等の便利なメソッドです:
- JavaScript
const ttlSeconds = 20 * 60; // 20 minutes
const refreshTtl = true;
new CollectionTtl(ttlSeconds, refreshTtl);
コレクションが作成されたときだけTTLを設定し、それ以降の書き込みではリフレッシュしないようにしたい場合は、withNoRefreshTtlOnUpdates()
を使用します:
- JavaScript
CollectionTtl.of(20 * 60).withNoRefreshTtlOnUpdates(); // 20 minutes, only when collection is created
これもまた、コンストラクターを直接呼び出すのと同等の便利なメソッドです:
- JavaScript
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 の設定を表示する。