기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Serverless에서 Watch 시작하기
ElastiCache는 WATCH 명령을 지원하므로 키에서 변경 사항을 모니터링하고 조건부 트랜잭션WATCH 명령은 모니터링되는 키가 수정되지 않은 경우에만 트랜잭션이 실행되도록 하여 낙관적 동시성 제어가 필요한 애플리케이션에 특히 유용합니다. 여기에는 쓰기 명령과 같은 클라이언트의 수정 사항과 만료 또는 제거와 같은 Valkey 자체의 수정 사항이 포함됩니다. 키가에 설정된 시간부터 WATCH 키를 받은 시간까지 수정된 경우 전체 트랜잭션EXEC이 중단됩니다.
ElastiCache Serverless의 경우 다음과 같은 제약 조건이 도입됩니다.
ElastiCache ServerlessWATCH는 단일 해시 슬롯으로 범위가 지정됩니다. 즉, 동일한 해시 슬롯에 매핑되는 키만 동일한 연결로 동시에 감시할 수 있으며, 감시 명령을 따르는 트랜잭션은 동일한 해시 슬롯에서만 작동할 수 있습니다. 애플리케이션이 다른 해시 슬롯의 키를 감시하거나 감시된 키와 다른 해시 슬롯에 매핑된 키에서 작동하는 트랜잭션 명령을 실행하려고 하면 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
감시 제한
모든 클라이언트 연결은 동시에 최대 1,000개의 키를 감시할 수 있습니다.
Watch와 관련하여 지원되는 명령
WATCH