Redis
종류
- Lettuce
- Jedis
지원하는 자료구조
- 하단의 이외에도 여러 자료구조를 지원합니다.

사용법
- Spring Data Redis
- RedisTemplate
- 설정을 위한 redisConfig 클래스를 만들어줘야함
- RedisTemplate를 사용한 Transaction은 롤백을 지원하지 않는다
- @Transactional 어노테이션을 걸어주면 됨
@Configuration @EnableTransactionManagement public class RedisTxContextConfiguration { @Bean public StringRedisTemplate redisTemplate() { StringRedisTemplate template = new StringRedisTemplate(redisConnectionFactory()); // explicitly enable transaction support template.setEnableTransactionSupport(true); return template; } @Bean public PlatformTransactionManager transactionManager() throws SQLException { return new DataSourceTransactionManager(); } }
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue(); valueOperations.set(rRTKey + user.getIdx(), refreshToken); valueOperations.get(~)
- 어노테이션 기반
@Getter @Setter @RedisHash("member") public class Member { @Id private String id; private String name; private int age; @TimeToLive private Long expiredTime; public Member(String name, int age) { this.name = name; this.age = age; } }
public interface MemberRedisRepository extends CrudRepository<Member, String> { }
사용법은 생각보다 간단한듯. 마치 해시맵을 쓰는 느낌?
트랜잭션
- Redis에서 지원하는 Transaction의 구현이 기존에 익히 알고있던 RDBMS(MySQL, MS-SQL...) 과는 동작이 달라서 정확한 동작방식을 알고 있어야함
- 캐시 만료 시간 설정
- TimeToLive