현재노트

[Springboot] redis 설정 Jedis보다는 Lettuce! 본문

Back/springboot

[Springboot] redis 설정 Jedis보다는 Lettuce!

현재노트 2021. 8. 5. 22:06

Springboot프로젝트에 Redis를 적용하는 방법에 대해 포스팅합니다.

 

Jedis보다 Lettuce으로 설정하는 이유는 lettuece가 비동기 이벤트 드리븐 방식의 Netty 라이브러리 기반이라 속도나 성능 측면에서 우위이며, 해당 내용에 대해서 간단한 표를통해 이해하고 바로 설정방법으로 넘어가겠습니다.

 

 

의존성 추가

 

프로젝트의 gradle 버전이 7이므로 build.gradle의 dependencies에 compile이 아닌 implementation으로 적용합니다.

 

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'

	// lettuce
	implementation'org.springframework.boot:spring-boot-starter-data-redis'
	implementation 'org.springframework.boot:spring-boot-starter-actuator'
}

 

Redis 서버 설정

application.properties 파일에 아래와 같이 redis 서버설정값을 셋팅합니다.

#Redis
redis:
host: 127.0.0.1
port: 6379

 

Redis config 설정클래스 생성

 

RedisConfig.java

@RequiredArgsConstructor
@Configuration
@EnableRedisRepositories
public class RedisConfig {
    @Value("${redis.host}")
    private String redisHost;

    @Value("${redis.port}")
    private int redisPort;

    @Bean
    public RedisConnectionFactory connectionFactory() {
        return new LettuceConnectionFactory(redisHost, redisPort);
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(new StringRedisSerializer());
        redisTemplate.setConnectionFactory(connectionFactory());
        return redisTemplate;
    }
}

 

위와같은 셋팅을 통해 Springboot와 Redis의 기본 설정을 완료하였습니다.

 

다음 포스트에서는 프로젝트에서 실제 활용하는 방식에 대해 포스팅하겠습니다.

Comments