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

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('test-cache', 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listFetch('test-cache', 'test-list');
if (result instanceof CacheListFetch.Hit) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
console.log(`List fetched successfully: ${result.valueList()}`);
} else if (result instanceof CacheListFetch.Miss) {
console.log("List 'test-list' was not found in cache 'test-cache'");
} else if (result instanceof CacheListFetch.Error) {
throw new Error(
`An error occurred while attempting to fetch the list 'test-list' from cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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('test-cache', 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listConcatenateBack('test-cache', 'test-list', ['x', 'y', 'z']);
if (result instanceof CacheListConcatenateBack.Success) {
console.log(`Values added successfully to the back of the list 'test-list'. Result - ${result.toString()}`);
} else if (result instanceof CacheListConcatenateBack.Error) {
throw new Error(
`An error occurred while attempting to call cacheListConcatenateBack on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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('test-cache', 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listConcatenateFront('test-cache', 'test-list', ['x', 'y', 'z']);
if (result instanceof CacheListConcatenateFront.Success) {
console.log(`Values added successfully to the front of the list 'test-list'. Result - ${result.toString()}`);
} else if (result instanceof CacheListConcatenateFront.Error) {
throw new Error(
`An error occurred while attempting to call cacheListConcatenateFront on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

ListLength

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

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

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

await cacheClient.listConcatenateBack('test-cache', 'test-list', ['one', 'two', 'three']);
const result = await cacheClient.listLength('test-cache', 'test-list');
if (result instanceof CacheListLength.Hit) {
console.log(`Length of list 'test-list' is ${result.length()}`);
} else if (result instanceof CacheListLength.Miss) {
console.log("List 'test-list' was not found in cache 'test-cache'");
} else if (result instanceof CacheListLength.Error) {
throw new Error(
`An error occurred while attempting to call cacheListLength on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

ListPopBack

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

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

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

await cacheClient.listConcatenateBack('test-cache', 'test-list', ['one', 'two', 'three']);
const result = await cacheClient.listPopBack('test-cache', 'test-list');
if (result instanceof CacheListPopBack.Hit) {
console.log(`Last value was removed successfully from list 'test-list': ${result.valueString()}`);
} else if (result instanceof CacheListPopBack.Miss) {
console.log("List 'test-list' was not found in cache 'test-cache'");
} else if (result instanceof CacheListPopBack.Error) {
throw new Error(
`An error occurred while attempting to call cacheListPopBack on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

ListPopFront

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

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

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

await cacheClient.listConcatenateFront('test-cache', 'test-list', ['one', 'two', 'three']);
const result = await cacheClient.listPopFront('test-cache', 'test-list');
if (result instanceof CacheListPopFront.Hit) {
console.log(`First value was removed successfully from list 'test-list': ${result.valueString()}`);
} else if (result instanceof CacheListPopFront.Miss) {
console.log("List 'test-list' was not found in cache 'test-cache'");
} else if (result instanceof CacheListPopFront.Error) {
throw new Error(
`An error occurred while attempting to call cacheListPopFront on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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('test-cache', 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listPushBack('test-cache', 'test-list', 'x');
if (result instanceof CacheListPushBack.Success) {
console.log("Value 'x' added successfully to back of list 'test-list'");
} else if (result instanceof CacheListPushBack.Error) {
throw new Error(
`An error occurred while attempting to call cacheListPushBack on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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('test-cache', 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listPushFront('test-cache', 'test-list', 'x');
if (result instanceof CacheListPushFront.Success) {
console.log("Value 'x' added successfully to front of list 'test-list'");
} else if (result instanceof CacheListPushFront.Error) {
throw new Error(
`An error occurred while attempting to call cacheListPushFront on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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('test-cache', 'test-list', ['a', 'b', 'c']);
const result = await cacheClient.listRemoveValue('test-cache', 'test-list', 'b');
if (result instanceof CacheListRemoveValue.Success) {
console.log("Value 'b' removed successfully from list 'test-list'");
} else if (result instanceof CacheListRemoveValue.Error) {
throw new Error(
`An error occurred while attempting to call cacheListRemoveValue on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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('test-cache', 'test-list', ['a', 'b', 'c', 'd', 'e', 'f']);
const result = await cacheClient.listRetain('test-cache', 'test-list', {startIndex: 1, endIndex: 4});
if (result instanceof CacheListRetain.Success) {
console.log("Retaining elements from index 1 to 4 from list 'test-list'");
} else if (result instanceof CacheListRetain.Error) {
throw new Error(
`An error occurred while attempting to call cacheListRetain on list 'test-list' in cache 'test-cache': ${result.errorCode()}: ${result.toString()}`
);
}

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] となります。