

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Serverless での Watch の開始方法
<a name="ServerlessWatch"></a>

ElastiCache は `WATCH` コマンドをサポートしています。これにより、キーの変更をモニタリングし、条件付き[トランザクション](https://valkey.io/topics/transactions/)を実行できます。`WATCH` コマンドは、オプティミスティック同時実行制御を必要とするアプリケーションに特に役立ち、モニタリング対象のキーが変更されていない場合にのみトランザクションが実行されます。これには、書き込みコマンドなどのクライアントによる変更や、有効期限や削除などの Valkey 自体による変更が含まれます。キーが に設定`WATCH`されてから`EXEC`受信されるまでに変更された場合、トランザクション全体が中止されます。

ElastiCache Serverless では、次の制約が導入されています。

ElastiCache Serverless `WATCH`は 1 つのハッシュスロットにスコープされます。つまり、同じハッシュスロットにマッピングされたキーのみが、同じ接続によって同時に監視でき、監視コマンドに従うトランザクションは、同じハッシュスロットでのみ動作できます。アプリケーションが別のハッシュスロットからのキーを監視しようとしたり、監視対象のキーとは異なるハッシュスロットにマッピングされたキーで動作するトランザクションコマンドを実行しようとすると、`CROSSSLOT`エラーが返されます。[ハッシュタグ](https://valkey.io/topics/cluster-spec/#hash-tags)を使用して、複数のキーが同じハッシュスロットにマッピングされるようにできます。

さらに、監視対象のキーを使用した接続内で`SCAN`コマンドを実行できず、`command not supported during watch state`エラーが返されます。

ElastiCache Serverless がキーが変更されたかどうかが不明な場合、トランザクションは (監視されたキーがタッチされたかのように) 中止されます。たとえば、スロットが移行され、監視対象のキーが同じノードで見つからない場合です。

**コードの例**

## 異なるスロットのキーを監視して操作する
<a name="w2aac24c33c15b1"></a>

次の例では、監視対象キーと`SET`コマンドで指定されたキーが異なるハッシュスロットにマッピングされます。実行は を返します`CROSSSLOT ERROR`。

```
> WATCH foo:{005119} 
OK 
> MULTI 
OK 
> SET bar:{011794} 1234 
QUEUED 
> EXEC 
CROSSSLOT Keys in request don't hash to the same slot
```

## 同じスロットからキーを監視して操作する
<a name="w2aac24c33c15b3"></a>

次の例は、 のキーセット`WATCH`が変更されていないため、トランザクションが成功したことを示しています。

```
> WATCH foo:{005119} 
OK 
> MULTI 
OK 
> SET bar:{005119} 1234 
QUEUED 
> EXEC 
1) OK
```

## 異なるスロットからキーを監視する
<a name="w2aac24c33c15b5"></a>

次の例では、同じクライアント接続内で異なるスロットから同時に`WATCH`キーを取得しようとすると、 が返されます`CROSSSLOT ERROR`。

```
> WATCH foo:{005119} 
OK 
> WATCH bar:{123455}  
CROSSSLOT Keys in request don't hash to the same slot
```

## 監視制限
<a name="ServerlessWatch.size"></a>

クライアント接続ごとに最大 1000 個のキーを同時に監視できます。

## Watch に関連するサポートされているコマンド
<a name="SupportedCommandsWatch"></a>

[WATCH](https://valkey.io/commands/watch/) コマンドと [UNWATCH](https://valkey.io/commands/unwatch/) コマンドは、[Valkey.io](https://valkey.io/) ウェブサイトに記載されています。構文、動作、戻り値、潜在的なエラー条件など、コマンドの包括的な概要を提供します。