작성하는 포스트는
https://www.youtube.com/watch?v=Gimv7hroM8A&t=2s
https://www.youtube.com/watch?v=92NizoBL4uA
를 시청하고 작성되었습니다!
메모리 계층을 봐보자.
출처: https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B3%84%EC%B8%B5_%EA%B5%AC%EC%A1%B0
계층에서 아래로 갈수록 동일 용량당 가격은 싸지고, 속도는 느려진다.
또한 아래로 갈수록 사용가능한 용량은 커진다.
내 노트북을 예시로 들면,
하드디스크의 용량 (256GB)
메모리의 용량 (16GB)
캐시메모리의 용량 (22.1MB)
은 다음과 같다.
보다시피 점점 용량은 줄어든다.
하지만 속도는 빨라진다.
메모리 상위 계층으로 갈수록 값이 비싸긴 해도, 아까 말한 것처럼
속도가 빠르다.
그래서 사람들은 생각했다.
음..
자주 사용하는 데이터는 좀 빨리빨리 오갔으면 좋겠는데..
어어.. 하드디스크 말고 메모리상으로 저장해버린다면..?
어쩌면 나... 천재일지도..??
그렇게 탄생한게, 캐시 인메모리 서버인 Redis이다.
Redis는 Remote dictionary server 이다.
외부에 있는 딕셔너리 자료형태의 서버라는 뜻이다.
딕셔너리 자료형태는, 파이썬으로 프로그래밍 하시는 분들은 익숙할 것이다.
자바에서는 딕셔너리와 같은 자료형태로 HashMap이 있다.
즉,
외부에 있는 HashMap 자료형태(Key, Value)로 이루어진
캐시, In-Memory 서버이다.
캐시란
자주 요청하는 결과를 CPU가 기존에 사용하던 데이터의
시간과 공간을 고려해 우선순위를 두어 (시, 공간 지역성)
미리 저장해놓았다가 빠르게 사용하는 것을 말한다.
쉽게 말해,
도서관에서 인기대여도서 칸(캐시 메모리)이 따로 존재하고,
해당 칸의 도서를 사서가(CPU가) 채우며,
보통 사람들이 많이 찾는 책(자주 요청하는 결과)을 더 빨리 찾을 수 있게 하는것
과 비교할 수 있을 것 같다.
덕분에 좋은 정보 얻어갑니다, 감사합니다.