Momento CacheのためのSet APIについて
Momentoコレクションタイプは、CollectionTTLを使用してTTL動作を指定します。これは、すべての "write" 操作のオプション引数です。
集合は要素の集まりですが、各要素は一度しか現れず、順序は保証されません。
例: セットが [1, 2, 3]
を含み、2 を追加してもセットは [1, 2, 3].
のままです。
詳しくは、Setsを参照してください。
Set methods
SetAddElement
セットに要素を追加します。セット項目がまだ存在しない場合、このメソッドはそれを作成します。
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | 変更するセットアイテムの名前。 |
element | String | Bytes | この操作によって追加される要素。 |
ttl | CollectionTTL object | キャッシュに設定された項目の TTLです。この TTL は、キャッシュ接続クライアントを初期化するときに使用される TTL よりも優先されます。 |
Method response object
- Success
- Error
詳しくはレスポンスオブジェクトを参照してください。
- JavaScript
const result = await cacheClient.setAddElement(cacheName, 'test-set', 'test-element');
switch (result.type) {
case CacheSetAddElementResponse.Success:
console.log("Element added successfully to set 'test-set'");
break;
case CacheSetAddElementResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheSetAddElement on set 'test-set' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
SetAddElements
Adds multiple elements to a set item.
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | 変更するセットアイテムの名前。 |
elements | String[] | Bytes[] | この操作によって追加される要素。 |
ttl | CollectionTTL object | キャッシュに設定された項目の TTLです。この TTL は、キャッシュ接続ク ライアントを初期化するときに使用される TTL よりも優先されます。 |
Method response object
- Success
- Error
詳しくはレスポンスオブジェクトを参照してください。
- JavaScript
- Rust
const result = await cacheClient.setAddElements(cacheName, 'test-set', ['test-element1', 'test-element2']);
switch (result.type) {
case CacheSetAddElementsResponse.Success:
console.log("Elements added successfully to set 'test-set'");
break;
case CacheSetAddElementsResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheSetAddElements on set 'test-set' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
cache_client
.set_add_elements(cache_name, "set_name", vec!["value1", "value2"])
.await?;
println!("Elements added to set");
SetFetch
Gets a set item from a cache.
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | 取得するセットアイテムの名前。 |
Method response object
SetFetch のレスポンスオブジェクトは、キャッシュヒット、ミス、エラーの3つの可能なオプションを返します。
- Hit
- valueSetBytes(): Bytes[]
- valueSetString(): String[]
- toString(): String
- Miss
- Error
詳しくはレスポンスオブジェクトを参照してください。
- JavaScript
- Rust
await cacheClient.setAddElements(cacheName, 'test-set', ['test-element1', 'test-element2']);
const result = await cacheClient.setFetch(cacheName, 'test-set');
// simplified style; assume the value was found
console.log(`Set fetched: ${result.value()!}`);
// pattern-matching style; safer for production code
switch (result.type) {
case CacheSetFetchResponse.Hit:
console.log('Set fetched successfully- ');
result.value().forEach((value, key) => {
console.log(`${key} : ${value}`);
});
break;
case CacheSetFetchResponse.Miss:
console.log(`Set 'test-set' was not found in cache '${cacheName}'`);
break;
case CacheSetFetchResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheSetFetch on set 'test-set' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
let _fetched_elements: Vec<String> = cache_client
.set_fetch(cache_name, "set_name")
.await?
.try_into()
.expect("Expected a set!");
SetSample
キャッシュ内のセット項目から要素のランダムサンプリングを取得します。
Name | Type | Description |
---|---|---|
cacheName | String | キャッシュの名前 |
setName | String | サンプリングするセット項目の名前 |
limit | Number | 取得する要素の最大数 |
メソッド・レスポンス・オブジェクト
SetSampleのレスポンス・オブジェクトは、キャッシュ・ヒット、ミス、エラーの3つの可能なオプションを返します。
- Hit
- valueSetBytes(): Bytes[]
- valueSetString(): String[]
- toString(): String
- Miss
- Error
詳しくはレスポンスオブジェクトを参照。
- JavaScript
- C#
await cacheClient.setAddElements(cacheName, 'test-set', ['test-element1', 'test-element2', 'test-element3']);
const result = await cacheClient.setSample(cacheName, 'test-set', 2);
// simplified style; assume the value was found
console.log(`Sampled 2 elements from set: ${result.value()!}`);
// pattern-matching style; safer for production code
switch (result.type) {
case CacheSetSampleResponse.Hit:
console.log('Sample of 2 elements from set: ');
result.valueSet().forEach((value, key) => {
console.log(`${key} : ${value}`);
});
break;
case CacheSetSampleResponse.Miss:
console.log(`Set 'test-set' was not found in cache '${cacheName}'`);
break;
case CacheSetSampleResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheSetSample on set 'test-set' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
var setAddResult = await cacheClient.SetAddElementsAsync("test-cache", "test-set", new string[] { "foo", "bar", "baz" });
if (setAddResult is CacheSetAddElementsResponse.Success)
{
Console.WriteLine("Added elements to 'test-set' successfully");
}
else if (setAddResult is CacheSetAddElementsResponse.Error error)
{
throw new Exception($"An error occurred while attempting to delete key 'test-key' from cache 'test-cache': {error.ErrorCode}: {error}");
}
var setSampleResult = await cacheClient.SetSampleAsync("test-cache", "test-set", 2);
if (setSampleResult is CacheSetSampleResponse.Hit setSampleHit)
{
Console.WriteLine($"Sampled random elements from 'test-set': {String.Join(", ", setSampleHit.ValueSetString)}");
}
else if (setSampleResult is CacheSetSampleResponse.Error error)
{
throw new Exception($"An error occurred while attempting to sample from 'test-set' from cache 'test-cache': {error.ErrorCode}: {error}");
}
SetRemoveElement
既存のセット項目から単一の要素を削除します。
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | 変更するセットアイテムの名前。 |
element | String | Bytes | この操作によって削除される要素。 |
Method response object
- Success
- Error
詳しくはレスポンスオブジェクトを参照してください。
- JavaScript
await cacheClient.setAddElement(cacheName, 'test-set', 'test-element');
const result = await cacheClient.setRemoveElement(cacheName, 'test-set', 'test-element');
switch (result.type) {
case CacheSetRemoveElementResponse.Success:
console.log("Element 'test-element' removed successfully from set 'test-set'");
break;
case CacheSetRemoveElementResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheSetRemoveElement on set 'test-set' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
SetRemoveElements
既存のセットアイテムから複数の要素を削除します。
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | 変更するセットアイテムの名前。 |
elements | String[] | Bytes[] | この操作によって削除される要素。 |
Method response object
- Success
- Error
詳しくはレスポンスオブジェクトを参照してください。
- JavaScript
- Rust
await cacheClient.setAddElements(cacheName, 'test-set', ['test-element1', 'test-element2']);
const result = await cacheClient.setRemoveElements(cacheName, 'test-set', ['test-element1', 'test-element2']);
switch (result.type) {
case CacheSetRemoveElementsResponse.Success:
console.log("Elements 'test-element1' and 'test-element2' removed successfully from set 'test-set'");
break;
case CacheSetRemoveElementsResponse.Error:
throw new Error(
`An error occurred while attempting to call cacheSetRemoveElements on set 'test-set' in cache '${cacheName}': ${result.errorCode()}: ${result.toString()}`
);
}
cache_client
.set_remove_elements(cache_name, "set_name", vec!["element1", "element2"])
.await?;
println!("Elements removed from set");
SetContainsElement
指定された要素が指定されたセットに含まれるかどうかを調べます。
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | セットアイテムの名前。 |
element | String | Bytes | 存在をチェックする要素の名前。 |
Method response object
SetContainsElementのレスポンスオブジェクトは、キャッシュヒット、ミス、エラーの3つの可能なオプションを返します。
- Hit
- containsElement(): bool
- Miss
- Error
詳しくはレスポンスオブジェクトを参照してください。
SetContainsElements
指定された要素が指定されたセットに含まれるかどうかをチェックします。
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | セットアイテムの名前。 |
elements | String[] | Bytes[] | 存在をチェックする要素名の配列。 |
Method response object
SetContainsElementsのレスポンスオ ブジェクトは、キャッシュヒット、ミス、エラーの3つの可能なオプションを返します。
- Hit
- containsElements(): bool[]
- Miss
- Error
詳しくはレスポンスオブジェクトを参照してください。
SetLength
既存のセットアイテムの長さを取得します。
名前 | 型 | 詳細 |
---|---|---|
cacheName | String | キャッシュの名前。 |
setName | String | チェックするセットアイテムの名前。 |
Method response object
- Hit
length()
: Number
- Miss
- Error
詳しくはレスポンスオブジェクトを参照してください。