Redis란

실무 관점에서의 Redis

Featured image

Redis란?

이 중 2가지만 만족해도 캐시 적용을 검토해봄 직 하다.

어노테이션

@Cacheable

예시 코드

설정

RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
template.setDefaultSerializer(new JdkSerializationRedisSerializer());

template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new JdkSerializationRedisSerializer());
template.afterPropertiesSet();

setConnectionFactory

레디스 커넥션 팩토리 설정한다.

setDefaultSerializer

기본 직렬화 방식을 설정한다.

setKeySerializer

key-value에서 key부분의 serializer를 설정한다.

setHashKeySerializer

hashkey 또는 field의 serializer를 설정한다.

setValueSerializer

key-value에서 value부분의 serializer를 설정한다.

afterPropertiesSet

디폴트 serializer를 설정해준다.

Serializer 종류

JdkSerializationRedisSerializer

디폴트 serializer로 설정된 serializer가 없으면 해당 serializer가 default로 설정된다. 기본적인 자바 직렬화 방식으로 serializer가 적용된다.

StringRedisSerializer

JacksonJsonRedisSerializer

json 형태로 저장된다.

Jackson2JsonRedisSerializer

json 형태로 저장된다.

GenericToStringSerializer

설정된 타입으로 변환된다.

template.setValueSerializer(new GenericToStringSerializer<>(Integer.class));

GenericJackson2JsonRedisSerializer

StringRedisTemplate vs RedisTemplate

StringRedisTemplate

참고