나의 브을로오그으

#0. Redis가 뭐지? 본문

DB/Redis

#0. Redis가 뭐지?

__jhp_+ 2022. 6. 21. 08:43

Redis에 대해 소개하는 영상이다.

Redis가 뭔지 모르고 간단한 소개영상만 보고 쓰는 글이다.

https://www.youtube.com/watch?time_continue=13&v=Gimv7hroM8A&feature=emb_logo 

 

1. Redis(Remote Dictionary Server)

- 외부(원격)에 있는 key-value 쌍으로 자료구조 형태로 데이터를 저장하는 서버

- 데이터 베이스, 캐시

- 메모리 상에 데이터를 저장하는 서버

(Cache : 나중에 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것)

- In-Memory Database (Cache) : Database보다 더 빠른 Memory에 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장한다.

 

 

2. 다양한 자료구조

- Collection

- String, List, Set, Sorted Set, Hash 등등

 

 

3. 발생 할 수 있는 문제

- Consistency 문제

- Race Condition 문제 : 여러 개의 Thread가 경합하는 것.

(Context Switching에 따라 예측하지 않은 결과가 발생 할 수 있음.)

여러개의 쓰레드를 사용하면 Critical Section이 생길 수 있기에 이런 부분에 대한 동기화가 필요함.

[해결책]

Redis는 기본적으로 Single Threaded 

Redis의 자료구조는 Atomic Critical Section에 대한 동기화를 제공

서로 다른 Transaction의 read/write 동기화 제공

 

 

4. 사용처

- 여러 서버에서 같은 데이터를 공유할 때

- Single Server라면? Atomic 자료구조 & Cache

 

 

5. 주의할 점

- Single Thread 서버이므로 시간 복잡도를 고려해서 명령어를 사용해야 한다.

- In-Memory 특성상 메모리 파편화(단편화), 가상 메모리 등에 대한 배경지식이 필요하다.