미리 읽어두었다가 요청이 올 경우 빠르게 응답하기 위한 목적.
전체 데이터가 필요 없고 데이터 역시 계속 유지할 필요가 없음.
대용량데이터나 커넥션이 빈번한 네트워크에 적합.


Read Life Cycle

유저의 새로운 데이터 서버 요청 -> Redis 서버에서 요청한 데이터가 있는지 확인 ->

  • 데이터가 존재하는 경우, 만료여부 확인 후 정보를 반환 -> 정보를 반환한 겨우, 시간을 현재로 업데이트 후 종료

  • 데이터가 만료되었거나 없는 경우, 삭제 후 주 서버에 요청 -> 주 서버에서 받은 데이터를 캐싱하고 데이터베이스에 저장 -> 받은 정보를 유저에게 반환 후 종료

CUD Life Cycle

데이터에 변화가 생겼으므로 해당하는 값의 데이터는 캐싱값이 아닌, 현재 실시간 정보를 보내주는 것이 효과적이라고 판단.

캐싱 만료시간이 아무리 짧게 설정되어도 없는 데이터를 사용자가 보게되는 일은 없도록 해야할 것이다.

방문자가 CUD를 서버에 요청 -> CUD요청을 주서버에 반영해 업데이트 -> 변경된 데이터 값을 캐싱데이터인 Redis에서 찾아 삭제 후 종료

여기서 가장 중요한 점은 캐싱을 제공하는 경우 단순하게 정보를 제공하는 부분만 고려하는 것이 아니라 다양한 상황에 대처해야한다는 점이다.

이 중 한가지가 위와 같이 CUD처럼 데이터에 중요한 변경사항이 있는 경우 기존의 캐싱 데이터를 삭제처리하는 과정이다.