TIL

redis란

하얀잔디 2022. 11. 21. 10:52

게시판에서 " 3일동안 가장 조회수가 높은 게시물" 을 순위로 보고싶었다.

 

그러는 도중 알게된 단어가 Redis였다.

 

Redis란? : 인메모리 DB저장소이다.

 

WEB - WAS - DB 인데,

 

사용자가 많다면 DB에 과부하가 될 수 있기 때문에 이 때 캐시서버를 도입한다.

 

그럴때 사용하는게 Redis 입니다.

 

같은 요청이 여러번 들어온 경우, 그 데이터를 따로 저장해서 다음에 읽을때는 빠르게 받도록.

 

매번 DB를 거치는게 아니라, DB의 부하를 줄이고 서비스의 속도도 빠르게 할 수 있다.

 

캐시서버는 2가지 패턴이 존재한다.

 

1. Look aside cache

 

1.클라가 데이터 요청

2. 웹 서버는 데이터가 존재하는지 Cache 서버에 확인

3. 캐시 서버에 데이터가 있으면, 바로 캐시서버가 클라에게 반환 (캐시 히트)

4. 없으면 DB 조회하여 캐시 서버에 저장하고 결과값을 클라에게 반환

 

Write Back

1. 웹서버는 모든 데이터를 캐시 서버에 저장

2.캐시 서버에 특정 시간동안 데이터 저장됨.

3.캐시 서버에 있는 데이터를 DB에 저장함.

4.DB에 저장됝 캐시 서버의 데이터를 삭제.

 

-> insert 쿼리를 한번씩 500번 날리는것 보다, insert 쿼리 500개를 붙여서 한번에 날리는 것이 더 효율적이기 대문에.

 

단점 : 서버에 장애가 발생해 다운되면, DB에 저장하기전에 메모리에 저장되기 때문에 데이터가 손실될 수 있음.

 

 

본격적인 특징 :

 

Key, Value 구조이기에 쿼리를 사용할필요 없음. ( NOSQL임)

 

 

메모리에 쓰기때문에 속도가 빠름

여러 자료구조를 지원함.

 

-Single Threaded 입니다.

 

-> 한번에 하나의 명령만 처리함. -> 처리시간이 긴 명령어가 들어오면 그 뒤에 명령어들은 대기가 필요함

(하지만 get , set 명령어의 경우 초당 10만개 이상될정도로 빠름)

 

 

* Redis 주의사항

 

서버에 장애가 발생할 경우 그에 대한 운영플랜이 꼭 필요함ㅈ

- 인 메모리이기 때문에 데이터 유실이 발생할 수 있으니까.

 

-메모리 관리가 중요함

-싱글스레드이므로 처리가 오래걸리는 명령은 피해야함.

 

Redis 는 static page를 캐싱하거나, 검색/쿼리 결과를 캐싱하는데 많이 사용됨,.

 

 

다운로드 방법 : (window 10)_

 

https://kitty-geno.tistory.com/133

 

Redis(레디스) | Windows 10 설치 및 기본 명령어

📌 Redis란 NoSQL의 종류 중 하나로 메모리 기반 Key-Value Storage 형 구조의 데이터 관리 시스템이다. 시스템 메모리를 사용하는 특징이 있으며, 문서형 NoSQL인 MongoDB 보다 빠르고 가볍게 동작하며 I/O

kitty-geno.tistory.com

 

'TIL' 카테고리의 다른 글

면접준비 쪼금만  (0) 2022.12.02
getby vs findby vs existby  (0) 2022.11.25
Service에서 Service를 의존해도 될까?  (0) 2022.11.17
Objects.requireNonNull 사용 이유  (0) 2022.11.16
디자인 패턴이란  (0) 2022.11.15