Redis 캐시 사용이 합리적인 선택일까요?
Mysql Buffer Pool 캐시라는 것이 있어서 쿼리 연산을 하고 그 결과를 캐시 저장해두고 있는 것으로 알 고 있습니다.
만약, 많은 사람들이 동일한 데이터를 자주 조회하는 항목에 대해서는 mysql 자체에서 buffer pool에 데이터를 캐시해두고 사용하는 것으로 충분할 것 같다는 생각이 듭니다.
Buffer Pool 캐시에 대해서 지식이 좀 부족한 상태라 Redis캐시에 비해 어떤 점이 부족한 점이 있는지를 잘 모르겠습니다. 사람들이 Pool을 사용하지 않고 Redis를 사용하여 캐시를 사용하는 이유가 있을 까요?
캐싱을 하는 방식
redis → key-value (key에 일치하는 것에 대해 가져온다)
MySQL Buffer Pool → 어떤 식으로 캐시를 저장하고 히트하는지? (이미 조회했던 데이터를 캐시한다? → 히트율 자체가 낮을수도 있지 않을까?)
Redis에 비해서 MySQL Buffer Pool를 관리하기가 좀 까다롭지 않은가?
MySQL 자체가 죽었을 때는? → 이걸 보완하는 무언가
조회하는 비용만 따지면 큰 차이가 없을 순 있으나
쓰기/수정/삭제 비용까지 같이 생각하면?
MySQL → I/O → Disk → 시간이 오래걸림
대용량 I/O 가 발생할 때 → Redis에다 쓰고 → 나중에 MySQL에 동기화 → 효과적