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

List API reference for Momento Cache

このページでは、リストコレクションデータ型の Momento API メソッドの詳細を説明しています。


備考

Momentoコレクションタイプは、CollectionTTLを使用してTTL動作を指定します。これは、すべての "write" 操作のオプション引数です。

List methods

ListFetch

キャッシュからリストアイテムを取得し、オプションでスライスを指定します。

名前説明
cacheNameStringキャッシュの名前。
listNameString取得するリストアイテムの名前。
startIndexNumber取得するリストの開始位置(含む要素)。デフォルトは0です。 この引数はオプションです。
endIndexNumber取得するリストの終了位置(含まない要素)。デフォルトはリストの末尾です。 この引数はオプションです。
Method response object

ListFetch のレスポンスオブジェクトには、キャッシュのヒット、ミス、またはエラーの3つの可能なオプションがあります。

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateBack(cacheName, 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listFetch(cacheName, 'test-list');

// simplified style; assume the value was found
console.log(`cache hit: ${result.value()!}`);

// pattern-matching style; safer for production code
switch (result.type) {
case CacheListFetchResponse.Hit:
console.log(`List fetched successfully: ${result.value()}`);
break;
case CacheListFetchResponse.Miss:
console.log(`List 'test-list' was not found in cache '${cacheName}'`);
break;
case CacheListFetchResponse.Error:
throw new Error(
`An error occurred while attempting to fetch the list 'test-list' from cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListConcatenateBack

指定されたリストを既存のリストアイテムの末尾に追加します。

例:

もし[1, 2, 3]と listConcatenateBack [4, 5, 6]がある場合、[1, 2, 3, 4, 5, 6]となります。

名前説明
cacheNameStringキャッシュの名前。
listNameString設定するリストアイテムの名前。
valuesString[] | Bytes[]リストアイテムに追加する要素としての値。
ttlCollectionTTL objectキャッシュ内のリストアイテムの TTL(有効期限)。この TTL は、キャッシュクライアント接続オブジェクトを初期化する際に使用される TTL よりも優先されます。
truncateFrontToSizeNumbertruncate to sizeを確認してください。
Method response object
  • Success
    • listLength(): Number - リストの新しい長さ
    • toString(): String - listLength を追加
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateBack(cacheName, 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listConcatenateBack(cacheName, 'test-list', ['x', 'y', 'z']);
switch (result.type) {
case CacheListConcatenateBackResponse.Success:
console.log(`Values added successfully to the back of the list 'test-list'. Result - ${result.toString()}`);
break;
case CacheListConcatenateBackResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListConcatenateBack on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListConcatenateFront

既存のリストアイテムの前に指定されたリストを追加します。

例:

もし [1, 2, 3] があり、listConcatenateFront に [4, 5, 6] を追加すると、[4, 5, 6, 1, 2, 3] になります。

名前説明
cacheNameStringキャッシュの名前。
listNameString設定するリストアイテムの名前。
valuesString[] | Bytes[]リストアイテムに追加される要素の値。
ttlCollectionTTL objectキャッシュ内のリストアイテムの TTL(Time To Live)。この TTL は、キャッシュクライアントを初期化する際に使用される TTL よりも優先されます。
truncateBackToSizeNumbertruncate to sizeを確認してください。
Method response object
  • Success
    • listLength(): Number - リストアイテムの新しい長さ
    • toString(): String - listLength を追加。
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateFront(cacheName, 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listConcatenateFront(cacheName, 'test-list', ['x', 'y', 'z']);
switch (result.type) {
case CacheListConcatenateFrontResponse.Success:
console.log(`Values added successfully to the front of the list 'test-list'. Result - ${result.toString()}`);
break;
case CacheListConcatenateFrontResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListConcatenateFront on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListLength

既存のリストアイテムの長さを取得します。

名前説明
cacheNameStringキャッシュの名前。
listNameString確認するリストアイテムの名前です。
Method response object
  • Hit
    • length(): Number
  • Miss
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateBack(cacheName, 'test-list', ['one', 'two', 'three']);
const result = await cacheClient.listLength(cacheName, 'test-list');

// simplified style; assume the value was found
console.log(`Length of list 'test-list' is: ${result.value()!}`);

// pattern-matching style; safer for production code
switch (result.type) {
case CacheListLengthResponse.Hit:
console.log(`Length of list 'test-list' is ${result.length()}`);
break;
case CacheListLengthResponse.Miss:
console.log(`List 'test-list' was not found in cache '${cacheName}'`);
break;
case CacheListLengthResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListLength on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListPopBack

リストアイテムから最後の要素を削除して返します。

名前説明
cacheNameStringキャッシュの名前。
listNameString削除して返すリストアイテムの名前です。
Method response object
  • Hit
    • valueString(): String
    • valueBytes(): Bytes
    • toString(): 切り詰められた valueString() です。
  • Miss
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateBack(cacheName, 'test-list', ['one', 'two', 'three']);
const result = await cacheClient.listPopBack(cacheName, 'test-list');

// simplified style; assume the value was found
console.log(`Last value, removed from 'test-list' is: ${result.value()!}`);

// pattern-matching style; safer for production code
switch (result.type) {
case CacheListPopBackResponse.Hit:
console.log(`Last value was removed successfully from list 'test-list': ${result.value()}`);
break;
case CacheListPopBackResponse.Miss:
console.log(`List 'test-list' was not found in cache '${cacheName}'`);
break;
case CacheListPopBackResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListPopBack on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListPopFront

リストアイテムから最初の要素を削除して返します。

名前説明
cacheNameStringキャッシュの名前。
listNameString取得するリストアイテムの名前。
Method response object
  • Hit
    • valueString(): String
    • valueBytes(): Bytes
    • toString(): 切り詰められた valueString() です。
  • Miss
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateFront(cacheName, 'test-list', ['one', 'two', 'three']);
const result = await cacheClient.listPopFront(cacheName, 'test-list');

// simplified style; assume the value was found
console.log(`First value, removed from 'test-list' is: ${result.value()!}`);

// pattern-matching style; safer for production code
switch (result.type) {
case CacheListPopFrontResponse.Hit:
console.log(`First value was removed successfully from list 'test-list': ${result.value()}`);
break;
case CacheListPopFrontResponse.Miss:
console.log(`List 'test-list' was not found in cache '${cacheName}'`);
break;
case CacheListPopFrontResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListPopFront on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListPushBack

リストアイテムの末尾に値を追加します。これは、ListConcatenateBack に単一の値を渡すのとまったく同じです。

名前説明
cacheNameStringキャッシュの名前です。
listNameString設定するリストの名前です。
valueString | Bytes追加する値です。
ttlCollectionTTL objectキャッシュ内のリストアイテムの TTL(Time To Live)です。この TTL は、キャッシュ接続クライアントの初期化時に使用される TTL より優先されます。
truncateBackToSizeNumbertruncate to sizeを確認してください。
Method response object
  • Success
    • listLength(): Number - リストアイテムの新しい長さです。
    • toString(): String - listLengthを追加
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateBack(cacheName, 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listPushBack(cacheName, 'test-list', 'x');
switch (result.type) {
case CacheListPushBackResponse.Success:
console.log("Value 'x' added successfully to back of list 'test-list'");
break;
case CacheListPushBackResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListPushBack on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListPushFront

リストアイテムの先頭に値を追加します。ListPushBack(#listpushback) と同様ですが、先頭に追加されます。

名前説明
cacheNameStringキャッシュの名前です。
listNameString設定するリストの名前です。
valueString | Bytes操作によってリストアイテムに追加される値です。
ttlCollectionTTL objectキャッシュ内のリストアイテムの TTL です。この TTL は、キャッシュ接続クライアントの初期化時に使用される TTL よりも優先されます。
truncateBackToSizeNumbertruncate to sizeを確認してください。
Method response object
  • Success
    • listLength(): Number - リストアイテムの新しい長さです。
    • toString(): String - listLengthを追加
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateFront(cacheName, 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listPushFront(cacheName, 'test-list', 'x');
switch (result.type) {
case CacheListPushFrontResponse.Success:
console.log("Value 'x' added successfully to front of list 'test-list'");
break;
case CacheListPushFrontResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListPushFront on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListRemoveValue

特定の値と等しいすべての要素をリストアイテムから削除します。

  • もしリスト ['up', 'up', 'down', 'down', 'left', 'right'] があり、'up' を削除すると、リストは ['down', 'down', 'left', 'right'] になります。
名前説明
cacheNameStringキャッシュの名前。
listNameString設定するリストアイテムの名前。
valueString | Bytes操作によってリストアイテムに追加される値。
Method response object

Responses

  • Success - 値が存在しない場合でも、指定した値をリストアイテムに追加します。
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateFront(cacheName, 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listRemoveValue(cacheName, 'test-list', 'b');
switch (result.type) {
case CacheListRemoveValueResponse.Success:
console.log("Value 'b' removed successfully from list 'test-list'");
break;
case CacheListRemoveValueResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListRemoveValue on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

ListRetain

指定されたリストに対して、開始位置(startIndex)を含み、終了位置(endIndex)を含まない範囲のスライスのみを保持します。この範囲外のアイテムはリストから削除されます。

例: 指定されたリストに対して、インデックス4から(startIndex)次の5つの要素を保持し、インデックス10で(endIndex)終わります。他の要素はすべて破棄されます。この例では、位置0〜3と9以上の要素が削除されます。

名前説明
cacheNameStringキャッシュの名前。
listNameString設定されるべきリストアイテムの名前。
startIndexNumber保持するリストの開始位置(含む要素)です。デフォルトは0です。
endIndexNumber保持するリストの終了位置(含まない要素)です。デフォルトはリストの末尾です。
ttlCollectionTTL objectキャッシュ内のリストアイテムの TTL(Time To Live)です。この TTL は、キャッシュ接続クライアントを初期化する際に使用される TTL よりも優先されます。
Method response object

Responses

  • Success - 値が存在しなくても、スライス範囲内のリストのみを保持します。
  • Error

特定の情報については、 レスポンスオブジェクト を参照してください。

await cacheClient.listConcatenateFront(cacheName, 'test-list', ['a', 'b', 'c', 'd', 'e', 'f']);
const result = await cacheClient.listRetain(cacheName, 'test-list', {startIndex: 1, endIndex: 4});
switch (result.type) {
case CacheListRetainResponse.Success:
console.log("Retaining elements from index 1 to 4 from list 'test-list'");
break;
case CacheListRetainResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheListRetain on list 'test-list' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
備考
Full example code and imports can be found here

Truncate to size

ListConcatenateListPush などの API 呼び出しには、トランケーションオプションがあります。要素を追加した後、リストのサイズがこの制限を超える場合、リストは切り詰められます。

例:リストが [1, 2, 3] で、ListConcatenateBack に [4, 5, 6] を使用し、truncateFrontToSize: 5 とすると、リストは [2, 3, 4, 5, 6] に切り詰められ、応答の ListLength は 5 になります。

例:リストが [1, 2, 3] で、ListConcatenateBack に [4, 5, 6] を使用し、truncateFrontToSize: 10 とすると、リストは切り詰められません。リストは [1, 2, 3, 4, 5, 6] となります。