翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Serverless での Watch の開始方法
ElastiCache は WATCH コマンドをサポートしています。これにより、キーの変更をモニタリングし、条件付きトランザクションWATCH コマンドは、オプティミスティック同時実行制御を必要とするアプリケーションに特に役立ち、モニタリング対象のキーが変更されていない場合にのみトランザクションが実行されます。これには、書き込みコマンドなどのクライアントによる変更や、有効期限や削除などの Valkey 自体による変更が含まれます。キーが に設定WATCHされてからEXEC受信されるまでに変更された場合、トランザクション全体が中止されます。
ElastiCache Serverless では、次の制約が導入されています。
ElastiCache Serverless WATCHは 1 つのハッシュスロットにスコープされます。つまり、同じハッシュスロットにマッピングされたキーのみが、同じ接続によって同時に監視でき、監視コマンドに従うトランザクションは、同じハッシュスロットでのみ動作できます。アプリケーションが別のハッシュスロットからのキーを監視しようとしたり、監視対象のキーとは異なるハッシュスロットにマッピングされたキーで動作するトランザクションコマンドを実行しようとすると、CROSSSLOTエラーが返されます。ハッシュタグ
さらに、監視対象のキーを使用した接続内でSCANコマンドを実行できず、command not supported during watch stateエラーが返されます。
ElastiCache Serverless がキーが変更されたかどうかが不明な場合、トランザクションは (監視されたキーがタッチされたかのように) 中止されます。たとえば、スロットが移行され、監視対象のキーが同じノードで見つからない場合です。
コードの例
次の例では、監視対象キーと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
次の例は、 のキーセットWATCHが変更されていないため、トランザクションが成功したことを示しています。
> WATCH foo:{005119} OK > MULTI OK > SET bar:{005119} 1234 QUEUED > EXEC 1) OK
次の例では、同じクライアント接続内で異なるスロットから同時にWATCHキーを取得しようとすると、 が返されますCROSSSLOT ERROR。
> WATCH foo:{005119} OK > WATCH bar:{123455} CROSSSLOT Keys in request don't hash to the same slot
監視制限
クライアント接続ごとに最大 1000 個のキーを同時に監視できます。
Watch に関連するサポートされているコマンド
WATCH