1. Redis ?
- Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반
비관계형 데이터베이스 관리시스템(DBMS)
- 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소
2. Redis 사용이유 ?
- 데이터베이스는 데이터를 물리 디스크에 직접 쓰기에 서버문제가 발생했을 떄
데이터 손실이 없음 하지만 매번 디스크에 접근해야 하기 떄문에 사용자가 많아지면
그만큼 부하량이 증가하여 속도가 많이 느려질 수 있음
- 이때 캐시서버를 이용하여 사용해야 함(Redis)
- 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때 빠르게 결과값을
받을 수 있게 도와주는 공간
- 같은 요청이 여러번 들어오는 경우 데이터 베이스를 거치지 않고 캐시 서버에서 처음 요청 이후
저장된 결과값을 바로 내려 주기에 데이터베이스 부하를 줄여 데이터 베이스 속도가 느려지는 것을 방지
3. Redis 특징
- Key, Value 구조로 쿼리를 사용할 필요가 없음
- 데이터를 디스크에 쓰는 구조가 아닌 메모리에서 데이터를 처리하기에 속도가 빠름
- String, Lists, Sets, Sorted Sets, Hashes 다양한 자료 구조를 지원
String : 일반적인 key - value 구조
Sets : String의 집합 여러 개의 값을 하나의 value에 넣을 수 있음
Sorted Sets : 중복된 데이터를 담지 않는 Set 구조에 정렬 Sort를 적용한 구조
Lists : 배열 형식의 데이터 구조 List를 사용하면 처음과 끝에 데이터를 넣고 빼는 건 자요롭지만
중간 데이터의 변경이 있을 시 어려움
- 데이터의 스냅샷 혹은 AOF 로그를 통해 복구가 가능하여 영속성 보장
- 스프링에서는 세션관리 및 캐싱을 하는데 자주 사용
- 싱글 쓰레드 기반 (한번에 하나의 명령만 처리가 가능하기 때문에 시간이 오래걸리는 명령은 지양해야함)
참고블로그
https://wildeveloperetrain.tistory.com/21
'개발지식' 카테고리의 다른 글
세마포어와 뮤택스 (0) | 2022.07.01 |
---|---|
[AWS]Elastic Load Balancer(로드밸런서) Sticky Sessions (0) | 2022.06.14 |
RDBMS 와 NoSQL의 차이 (0) | 2022.06.10 |
PHP란 무엇인가 ? (0) | 2022.06.10 |
WebServer, WAS 의 차이 (0) | 2022.06.09 |