1. 시험환경
˙ SpringBoot
˙ Redis
˙ Docker
2. 목적
˙ Docker를 이용하여 Redis를 설치 및 실행한다.
˙ SpringBoot에서 Redis 사용을 위한 라이브러리 설치 및 설정하는 방법을 알아보자.
˙ SpringBoot를 이용하여 Redis에 Sample 데이터를 저장하고 불러오는 테스트를 진행한다.
3. 적용
① Redis가 설치 및 실행되어 있어야 한다. ( 여기서는 Docker를 이용하여 Redis를 설치하고 실행한다. )
- 참고 : https://languagestory.tistory.com/303
② SpringBoot에서 Redis 라이브러리를 설치한다.
- 파일명 : build.gradle
1
|
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
|
cs |
③ redis 접속 정보 등을 설정한다.
- 파일명 : application.yml
1
2
3
4
5
6
7
8
9
|
redis:
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 2
port: 6379
host: 127.0.0.1
password: 1q2w3e
|
cs |
④ RedisConfig 파일을 설정한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package com.example.demo.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Value("${spring.redis.host}")
private String redisHost;
@Value("${spring.redis.port}")
private String redisPort;
@Value("${spring.redis.password}")
private String redisPassword;
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(redisHost);
redisStandaloneConfiguration.setPort(Integer.parseInt(redisPort));
redisStandaloneConfiguration.setPassword(redisPassword);
LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration);
return lettuceConnectionFactory;
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
return redisTemplate;
}
}
|
cs |
⑤ Redis에 데이터 저장 및 불러오기 기능을 수행하는 코드를 작성한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package com.example.demo.ctrl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
public class RedisController {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@GetMapping("/set")
public ResponseEntity<?> setKeyValue() {
ValueOperations<String, String> vop = redisTemplate.opsForValue();
vop.set("Korea", "Seoul");
vop.set("America", "NewYork");
vop.set("Italy", "Rome");
vop.set("Japan", "Tokyo");
return new ResponseEntity<>( HttpStatus.CREATED);
}
@GetMapping("/get/{key}")
public ResponseEntity<?> getValueFromKey(@PathVariable String key) {
ValueOperations<String, String> vop = redisTemplate.opsForValue();
String value = vop.get(key);
return new ResponseEntity<>(value, HttpStatus.OK);
}
}
|
cs |
⑥ 스프링 프로젝트를 시작한다.
4. 결과
˙ Redis에 데이터 저장하기
- 테스트 URL : http://localhost:8080/set
˙ Redis에 저장된 데이터 불러오기
- 테스트 URL : http://localhost:8080/get/Korea
- 테스트 URL : http://localhost:8080/get/Italy
'스프링 프레임워크' 카테고리의 다른 글
React.js와 SpringBoot를 이용한 로그인 구현 종류 및 방법론 (0) | 2024.01.25 |
---|---|
spring project(스프링 프로젝트) gradle(그래들) war 빌드 (0) | 2024.01.06 |
spring project(스프링 프로젝트) gradle(그래들) jar 빌드 (0) | 2024.01.06 |
JAR(Java Archive)와 WAR(Web Application Archive) 차이점 (0) | 2024.01.06 |
SpringBoot에서 jsp(view) 사용을 위한 의존성 추가 및 설정 방법 (1) | 2024.01.06 |