흰 스타렉스에서 내가 내리지

Redis 본문

etc

Redis

주씨. 2023. 6. 27. 20:00
728x90

# Redis

- Remote Dictionary Server

→  외부에 있는 딕셔너리라는 자료 구조를 사용하는 서버

 

- Database, Cache, Message broker

- In-memory Data Structure Store

- Supports rich data structure

 

# Cache

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

 

# Redis의 탄생

 

메모리 계층 구조

데이터 베이스는 HDD, SSD에 저장.

메인 메모리에 저장해서 좀 더 빠르고 쉽게 데이터에 접근하면 어떨까 해서 탄생한 In-memory Database Redis.

더 자주 접근하고 덜 자주 바뀌는 데이터를 저장하자.

 

# Race Condition 해결

- Redis는 기본적으로 Single Threaded

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

    - Critical Section : 프로세스 여러개가 동시에 접근하면 안되는 영역

- 서로 다른 Transaction Read/Write를 동기화

 

# 어디서 쓰나?

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

- 서버를 여러 대 쓰지 않더라고, Atomic 자료구조 & Cache 기능을 사용하기 위해서 쓴다

 

# 주의해야 할 점

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

- In-memory 특성상 메모리 파편화, 가상 메모리등의 이해가 필요하다.