캐시 : 결과를 미리 저장했다가 빠르게 사용하는 것
더 자주 접근하고 덜 자주 바뀌는 데이터를 메모리에 저장(In-memory Database)해서 빠르고 쉽게 접근 : In memory database Redis
Memacached 인메모리 DB는 아래와 같은 Collection 자료구조 지원
하지만 왜 인메모리 DB를 안쓰는가?
Race condition : 여러 쓰레드가 경합
Redis 자료구조는 기본적으로 싱글 스레드
Redis의 자료구조 Atomic
여러 서버에서 같은 데이터 공유할때 사용
주의사항
Redis : 네트워크 요청 받아 명령어 처리
메모리 관리
메모리 파편화 : 메모리 할당/반환 시 부분 비어있는 공간 -> 커다란 프로세스 할당시 실제 사용하지 않는 공간 발생 -> 공간 없음으로 인식하고 프로세스가 죽는 경우가 발생 -> Redis 사용 시 메모리를 적당히 여유있게 사용할 필요가 있음
Swap : 가상 디스크에 저장하고 필요 시 메모리에 올려서 사용
Replication - Fork : 휘발성 메모리 상 데이터를 저장하기에 유실을 고려하여 데이터 복사 기능 제공