가자공부하러!

Spring Security 활용 회원 관리 (3) - Spring Security와 Embedded Redis 본문

공부/Spring Boot

Spring Security 활용 회원 관리 (3) - Spring Security와 Embedded Redis

오피스엑소더스 2019. 9. 17. 21:23

참고 : https://jojoldu.tistory.com/297

참고 : http://wiki.sys4u.co.kr/pages/viewpage.action?pageId=8552454

참고 : https://genesis8.tistory.com/189

참고 : https://webisfree.com/2017-10-26/redis-%EB%A0%88%EB%94%94%EC%8A%A4%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%BA%90%EC%8B%B1%EC%84%9C%EB%B2%84-%EC%9A%B4%EC%98%81%ED%95%98%EA%B8%B0







1. Redis ?


1. REmote DIctionary Server

  > in memory NoSQL DB

- key-value 형식의 DB

- Disk를 거치는 방법에 비해 속도가 빠르다.

  > Cache 역할 수행 : 만료일을 지정하여 만료가 되면 자동으로 데이터가 사라진다.

  > 주요 용도 : 스태틱 자원, 검색 결과 등을 캐시하는 용도로 많이 사용

  > NoSQL의 한 종류

  > Single Thread

- 서버 하나에 여러개의 서버를 띄울 수 있다.

- 데이터 분실 위험을 없애기 위해 Master - Slave 관계로 구성 가능


2. Redis의 장점

  > 메모리를 활용하면서도 영속적인 데이터 보존

- 명령어로 명시적으로 삭제하거나 expires를 설정하지 않으면 데이터를 삭제하지 않는다.


3. 역할(CRUD)

  > Client에서 요청이 들어왔을 때, 주서버로부터 값을 가져와 저장한다.

- 현재시간이나 만료시간을 함께 저장해야 한다.

  > Read

- 클라이언트의 Read 요청에 따른 처리 과정

- 방문자, 사용자의 새로운 데이터를 주서버에 요청

- Redis 서버에 요청 데이터가 있는지 확인

- 데이터가 존재하는 경우 만료여부 확인 후 정보 반환

- 정보를 반환한 경우 시간을 현재로 업데이트 후 종료

- 데이터가 만료된 경우 삭제 후 주서버에 요청

- 주서버로 부터 받은 데이터를 캐싱하여 저장

- 값을 방문자에게 반환 후 종료

  > Create, Update, Delete

- CUD 요청 시 처리 과정

- 방문자가 CUD를 서버에 요청

- CUD 요청을 주서버에 반영하여 업데이트

- 변경된 데이터 값을 캐싱데이터인 Redis에서 찾아 삭제 후 종료





2. Spring Boot 프로젝트에 Embedded Redis 적용

1. 개발 환경

  > java 8

  > spring boot 2.1.8(maven)


2. 작업 순서

  > 디펜던시 추가(pom.xml)

- embedded-redis

  > Config 파일 작성
- EmbeddedRedisConfig
- RedisRepositoryConfig
- application.yml : 위 config파일의 프로퍼티 정보





Comments