명령 전송 → 응답 대기 → 다음 명령 → 명령 N개면 왕복도 N번# 일반: 명령마다 왕복
SET k1 v1 # → OK (왕복 1)
SET k2 v2 # → OK (왕복 2)
# 파이프라이닝: 응답을 안 기다리고 연속 전송 후 응답을 한꺼번에 수신
SET k1 v1
SET k2 v2
SET k3 v3 # 세 명령 연속 전송 → 응답 3개를 한 번에 받음 (왕복 1회)
MULTI/EXEC(트랜잭션)나 Lua를 써야 함| 기준 | 파이프라이닝 | 트랜잭션(MULTI/EXEC) |
Lua |
|---|---|---|---|
| 목적 | RTT 절감(전송 배치) | 원자적 일괄 실행 | 원자적 read-modify-write |
| 원자성·격리 | 없음(끼어듦 가능) | 있음 | 있음 |
| 결과 기반 분기 | 불가 | 불가(EXEC 전엔 값 없음) | 가능(서버 로직) |
| RTT | 1회 | 1회(보통 파이프라인됨) | 1회(EVALSHA) |
| 적합 | 서로 독립적인 대량 명령 | 묶어서 원자 실행 | 조건부 원자 연산 |
RedisTemplate.executePipelined { ... }Pipeline 객체