728x90
반응형
Docker를 이용하여 Reids 서버 구동
- 도커를 재시작했을 때, redis-cli에 다시 접속 : docker exec -it dockerRedis redis-cli
docker pull redis
docker network create redis-net
#dockerRedis라는 이름의 컨테이너를 redis-net 네트워크에 붙여 실행한다.
docker run --name dockerRedis -p 6379:6379 --network redis-net -d redis redis-server --appendonly yes
#redis-cli로 dockerRedis에 접속한다.
docker run -it --network redis-net --rm redis redis-cli -h dockerRedis
Spring Boot Redis Session 연결
- 의존성 추가
- implementation 'org.springframework.boot:spring-boot-starter-data-redis'
- implementation 'org.springframework.session:spring-session-data-redis'
- redis 연결 설정
spring:
redis:
host: localhost
password:
port: 6379
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: 1
session:
timout: 600
store-type: redis
redis:
flush-mode: on-save
- RedisConfig : Redis 관련 설정
@Configuration
public class RedisConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port")
private int port;
@Bean
public RedisConnectionFactory redisConnectionFactory(){
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName(host);
redisStandaloneConfiguration.setPort(port);
LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration);
return connectionFactory;
}
@Bean
public StringRedisTemplate stringRedisTemplate(){
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setKeySerializer(new StringRedisSerializer());
stringRedisTemplate.setValueSerializer(new StringRedisSerializer());
stringRedisTemplate.setConnectionFactory(redisConnectionFactory());
return stringRedisTemplate;
}
}
- controller
- HttpSession을 파라미터로 입력 받아야 session 정보를 Reids에서 다룰 수 있다.
@RestController
public class RedisController {
@GetMapping("/redis-session")
public ResponseEntity redisSession(HttpSession httpSession){
return ResponseEntity.ok().body("session : " + httpSession);
}
}
- 테스트
- 목표 : localhost:8080/redis-session 접속 후 dockerRedis에서 key값 확인
- 터미널에서 redis-cli 접속 : docker exec -it dockerRedis redis-cli
- [redis-cli] flushall : 모든 데이터 삭제
- [browser] http://localhost:8080/redis-session 접속
- [redis-cli] keys * : 모든 키 값 출력
- 결과
redis-session
제주삼다수 그린
COUPANG
www.coupang.com
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
반응형
'Spring > Redis' 카테고리의 다른 글
[Spring Interceptor] Interceptor에서 Redis-Session 정보를 이용하여 유저 권한 체크 (0) | 2021.08.27 |
---|