Redis(Remote Dictionary Server) : 외부에 있는(Remote) Dictionary라는 자료 구조를 사용하는 서버
- Database, Cache, Message broker
- In-memory Data Structure Store
- Supports rich data structure
Cache : 나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것
In-memory Database : Database보다 더 빠른 Memory에 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장하자.
Java - Redis => 서버가 여러 대인 경우 Consistency의 문제 발생
Race Condition : 여러 개의 Thread가 경합하는 것. Context Switching에 따라 원하지 않는 결과가 발생
- 해결 : Redis는 기본적으로 Single Threaded. Redis 자료구조는 Atomic Critical Section에 대한 동기화를 제공. 서로 다른 Transaction Read/Write를 동기화
Single Threaded : Event Driven(비동기). IO-bound Process. Context Switching의 효율이 적다. Simple
Redis의 사용 => 여러 서버에서 같은 데이터를 공유할 때. 싱글 서버라면 Atomic 자료구조& Cache
Redis 사용 시 주의점 : 싱글 스레드 서버이므로 시간 복잡도를 고려. In-memory 특성상 메모리 파편화, 가상 메모리 등의 이해가 필요
Memory 관리 : 메모리 파편화. 가상메모리 - Swap. Replication - Fork
'공부 기록 > 영상 후기' 카테고리의 다른 글
[10분 테코톡] 쿨라임의 HTTP/1.1, HTTP/2, 그리고 QUIC (1) | 2023.04.09 |
---|---|
[10분 테코톡] 코일의 Web Socket (0) | 2023.04.09 |
[우아콘2020] 수십억건에서 QUERYDSL 사용하기 (0) | 2023.04.05 |
MAC주소, IP주소, Port번호가 식별하는 것 (0) | 2023.04.05 |
공유기의 IP주소는 왜 192.168.0.1이 되었을까요? | 쉽게보는 IT 상식, 디모의 테크 노트 (0) | 2023.04.05 |