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 특성상 메모리 파편화, 가상 메모리등의 이해가 필요하다.