본문 바로가기

공부 기록/영상 후기

[10분 테코톡] 디디의 Redis

https://youtu.be/Gimv7hroM8A

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