Redis에서 트랜잭션을 위한 커맨드를 제공한다.
Round Trip을 최소화할 수도 있지만, Atomic한 동작을 보장하게 할 수 있다.
이를 통해 동시성 해결을 위해 많이 사용되기도 한다.
WATCH를 통해 낙관적 락을 사용할 수 있다.
WATCH 사용시, Race Condition이 발생하면, 트랜잭션이 실패해서 재처리가 필요하다.
트래픽이 늘어나면, Redis Cluster를 통해 처리량을 높인다.
이때, Redis Cluster를 통해 병렬처리를 하게 되면, Transaction을 사용할 수 없다.
정확히 말하면 16384개의 hash slot에 나눠 데이터를 저장하는데, 대상 키들이 모두 같은 슬롯에 있는 경우에만 트랜잭션을 실행할 수 있다.