SpringBoot + Redis 연동하기
- Project/Project Setting
- 2020. 1. 19.
반응형
728x90
반응형
SpringBoot 에 Redis를 연동해보자
1. build.gradle 에 dependency 를 추가한다.
//redis
compile "org.springframework.boot:spring-boot-starter-data-redis"
compile "redis.clients:jedis:2.9.0"
compile "org.springframework.session:spring-session-data-redis"
2. application.yml 파일에 redis 정보를 추가한다. (.properties 파일)
#Redis
redis:
host: 127.0.0.1
port: 6379
3. RedisConfig.java 를 생성한다.
@Configuration
public class RedisConfig {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private int port;
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = null;
try {
RedisStandaloneConfiguration conn = new RedisStandaloneConfiguration();
conn.setHostName(host);
conn.setPort(port);
jedisConnectionFactory = new JedisConnectionFactory(conn);
} catch (Exception e) {
}
return jedisConnectionFactory;
}
@Bean(name="redisTemplate")
public RedisTemplate redisTemplate(JedisConnectionFactory jedisConnectionFactory) {
final RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setDefaultSerializer(new StringRedisSerializer());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericToStringSerializer<>(Object.class));
redisTemplate.setValueSerializer(new GenericToStringSerializer<>(Object.class));
redisTemplate.setConnectionFactory(jedisConnectionFactory);
return redisTemplate;
}
}
여기서 사용된 @Value 어노테이션은 2번의 application.yml 에서 가져오는 것이다.
- 위 .yml 파일에 추가한 host 정보를 가져온다.
@Value("${redis.host}")
- 위 .yml 파일에 추가한 port 정보를 가져온다.
@Value("${redis.port}")
4. RedisConroller.java 를 생성하자. Redis에 접속하여 data를 insert 하고 select 하는 Sample Test API 를 만든다.
@RestController
@RequestMapping("/redis")
public class RedisController {
private final RedisTemplate<String, String> redisTemplate;
public RedisController(RedisTemplate<String, String> redisTemplate) {
this.redisTemplate = redisTemplate;
}
@ApiOperation(value = "redis key 등록")
@PostMapping("")
public ResponseEntity<?> addRedisKey(@ApiParam(value = "key", defaultValue = "") @RequestParam String key,
@ApiParam(value = "value", defaultValue = "") @RequestParam String value) {
ValueOperations<String, String> vop = redisTemplate.opsForValue();
vop.set(key, value);
...
}
@ApiOperation(value = "redis value 조회")
@GetMapping("/{key}")
public ResponseEntity<?> getRedisKey(@ApiParam(value = "key", defaultValue = "") @PathVariable String key) {
ValueOperations<String, String> vop = redisTemplate.opsForValue();
return vop.get(key)
...
}
}
위 메소드에서 사용된 redis의 함수에 대해 간단히 살펴보자.
key, value 를 지정하여 redis에 등록한다.
vop.set(key, value);
key 에 해당하는 데이터를 조회한다.
vop.get(key)
반응형
'Project > Project Setting' 카테고리의 다른 글
MacOS에 RabbitMQ 설치하고 실행하기 (0) | 2021.06.10 |
---|---|
SpringBoot + ElasticSearch 연동 및 간단 API 호출해보기 (0) | 2021.02.09 |
스프링부트 공통 Exception 처리하기 (1) | 2020.01.12 |
SpringBoot에 Swagger을 빠르게 적용해보기 (0) | 2019.10.25 |
SpringBoot에 Http Client Feign 적용해보기 (0) | 2019.10.25 |