원래 db가 db 프로그램에 저장돼 있고 이걸 클라이언트가 요청시
1. 메모리로 가져온다
2.cpu가 가져가서 처리한다
3. 클라로 전송한다 인데
캐시는 cpu에 잇는거니까
1, 2번 없이 바로 클라로 보내는거라 젤 빠르고
인메모리는 메모리에 저장시켜놔서 메모리로 가져오는 작업을 수행하지 않아서 빠른게 맞나요?
속도로 보면
캐시 > 인메모리 > 디비
맞나용??
1. 메모리로 가져온다
2.cpu가 가져가서 처리한다
3. 클라로 전송한다 인데
캐시는 cpu에 잇는거니까
1, 2번 없이 바로 클라로 보내는거라 젤 빠르고
인메모리는 메모리에 저장시켜놔서 메모리로 가져오는 작업을 수행하지 않아서 빠른게 맞나요?
속도로 보면
캐시 > 인메모리 > 디비
맞나용??
해당 댓글은 삭제되었습니다.
그럼 인메모리는 제가 말한게 맞나요? 캐시는 뭘까요 ㄱ럼 ㅠㅠ
그럼 캐시에 저장한다는 말은 디비 말고 별도의 캐시용 공간이 있는건가요? 서버로 치면 잠깐 메모리에서 할당된 공간에 저장한다거나 그런 맥락이 맞을까요?
감사합니다 레디스를 한번 알아봐야겠네요
님이 말하는 캐시는 데이터를 받고나서 임시적으로 저장된 값임
개추값이 5개라고 치고, 내가 개추를 누르려고 하는데 요청이 그리 큰 작업이 아니니 db 응답을 기다릴 필요가 없잖아. 버튼 클릭시 무조건 송신이 되었다고 가정하고 개추 옆에 5라는 캐시데이터를 6으로 슬쩍 바꾸는거임. 그래서 제일 빠른거셈.
그 추천 수 정보는 서버의 캐시가 갖고 있는데 클라에서 추천을 누르먄 서버의 캐시가 바뀌고(디비는 안바낌) 나중에 따로 모아서 디비에 업데이트 쿼리 날리는게 맞나여?
따로 모아서 한다기보단 보통은 1. 클릭 이벤트로 개추요청을 날림. 2. 요청 처리후 응답 데이터 기다림. 3. 응답 결과값 기반으로 기존 데이터를 refetch하는 과정을 거침. 인데, 캐시는 1. 클릭 이벤트로 개추요청을 날림. 2. 클릭(요청)과 동시에 캐시 데이터 업데이트를 함. 이게 끝임. 응답을 받지 않아서 빠른거임
일반적인 DB 기준으로 조회를 하면 물리적인 저장소에서 매번 읽어오는 건 자원소모가 크기 때문에 메모리에 한번 읽은 데이터를 저장하는데 그걸 캐싱이라 함 다음번에 같은 내용을 조회 할때는 물리적인 저장소에서 읽어오는게 아니라 메모리에서 바로 가져오니까 빠름
그럼 db에 쿼리 날릴때 캐쉬로 가져온다면 이 데이터는 서버의 메모리에 따로 저장되어 있어서 나중에 더 가져올때 빠른건가요?
그죠 같은 데이터라면 캐싱되어있는 메모리에서 가져오는게 빠르죠
DB 버퍼 캐시 한번 검색해서 찾아보시면 도움될
좋은 키워드 감사합니다