728x90
반응형
Redis(Remote dictionary server)
- Remote - 외부
- dictionary - HashMap(Key-Value)
- server - 서버
Redis란?
- Remote dictionary server
- Database, Cache, Message broker
- In-memory Data Structure Store(메모리 상에서 데이터를 저장)
- Supports rich data structure
Cache
- 나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것
- CPU Cache
- 빠르고 비싸고 용량이 적다.
Redis
- DB보다 더 빠른 Memory에 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장하자.
Race Condition?
- Race Condition이란 여러 개의 Thread가 경합하는 것
- Context Switching에 따라 원하지 않는 결과가 발생
Race Condition 해결
- Redis는 기본적은 Single Threaded
- Redis 자료구조는 Atomic Critical Section(동시에 프로세스가 접근하면 안되는 영역)에 대한 동기화를 제공
- 서로 다른 Transaction Read/Write를 동기화
Redis를 어디서 쓰는지?
- 여러 서버에서 같은 데이터를 공유할 때
- Single Server라면 Atomic 자료구조 & Cache
Redis 사용할 때 주의해야 할 점
- Single Thread 서버 이므로 시간 복잡도를 고려해야 한다.
- In-memory 특성상 메모리 파편화, 가상 메모리 등의 이해가 필요하다.
728x90
반응형