MULTI/EXEC
는 명령을 큐잉했다가 한 번에 실행하는 기능을 제공한다.private final RedisTemplate<String, String> redisStringTemplate;
private final RedisTemplate<String, MeetingReminderMessage> redisReminderTemplate;
setEnableTransactionSupport(true); //템플릿 설정 추가
tprivate final RedisTemplate<String, String> redisStringTemplate;
private final RedisTemplate<String, MeetingReminderMessage> redisReminderTemplate;
//메세지 저장 트랜잭션
public void saveMessage(String uniqueKey, long meetingTime, ReminderMessage message) {
// 커넥션 바인딩 시작
redisStringTemplate.multi();
redisStringTemplate.opsForZSet().add(ZSET_KEY, uniqueKey, (double)meetingTime);
redisReminderTemplate.opsForHash().put(HASH_KEY, uniqueKey, message);
// 모든 명령 큐잉 후 실행
redisStringTemplate.exec();
}
문제점