[Redis] Client Side Caching 정의 장점

mocaccino·2024년 10월 18일
1

백엔드로드맵

목록 보기
7/19
post-thumbnail

Redis란

Remote Dictionary Server의 약자로 key-value 구조의 비 관계형 데이터를 저장하고 관리하기 위한 NoSQL의 종류 중 하나이다. 오픈소스 소프트웨어이며 디스크가 아닌 메모리 기반의 데이터 저장소이다.

레디스는 현재 가장 인기 있는 key-value store로서 C언어로 작성되었으며 다양한 개발 언어를 제공한다.

NoSQL 중에서도 Redis가 주목을 받는 이유는 데이터 저장소로 입출력이 가장 빠른 메모리를 채택하고 있고 단순한 구조의 데이터 모델을 사용해서 속도가 빠르기 때문이다.

AWS는 레디스용 Amazone ElastiCache 서비스를 통해 Redis를 지원하며 고객은 원하는 경우에 AWS EC2에서 자체 관리형 레디스를 실행할 수 있다.

캐시를 유용하게 사용하기 위해서는

자주 변경되지 않는 정보를 읽을 때 사용하도록 한다.
예를 들어 SNS에서 사용자의 게시글에 대한 값은 대부분 변하지 않으며 수정 또한 드물게 일어난다. 일부 사용자들은 많은 팔로워를 가지고 있고 최근 게시물일 수록 더 많이 노출되기 때문에 캐시를 유용하게 이용할 수 있다.

Redis Data Type 종류

Redis - Data Structs 참고

  • Strings
  • Sets
  • Sorted Sets
  • Lists
  • Hashes
  • Bitmaps
  • Bitfields
  • HyperLogLog
  • Geospatial indexes
  • Streams

Redis를 캐시로 사용하는 이유

Redis 서버에 데이터를 캐시한다면 데이터가 변경될 때 Redis 캐시만 업데이트하면 되기 때문에 캐시동기화 문제가 해결된다.
하지만 Redis에서 캐시 데이터를 보관할 만큼의 여럭이 없거나(예 : 비용) 매우 낮은 레이턴스를 요구하는 상황이라면 로컬 캐시 사용이 필요할 수있다. 로컬 캐시를 사용할때 캐시동기화를 위해 Redis Pub/Sub을 사용하면 모든 인스턴스에 손쉽게 캐시동기화를 구현할 수 있다.

Client Side Caching

고성능 서비스를 위해 사용되는 기술로 데이터베이스의 쿼리 결과를 어플리케이션에 직접 저장하기 위해 데이터베이스가 아닌 어플리케이션 서버의 사용가능한 메모리를 이용하는 방법이다.

클라이언트 사이드 캐싱을 사용하면 어플리케이션은 자주 사용되는 쿼리의 응답을 어플리케이션 메모리 내에 직접 저장해서 나중에 데이터베이스에 다시 쿼리하지 않고 응답을 재사용할 수 있도록 한다.

클라이언트 측 캐싱의 장점

  1. 로딩시간이 줄어든다.
  2. 데이터베이스에 대해 쿼리가 줄어들기 때문에 더 적은 자원을 가지고도 이전과 같은 서비스 트래픽을 감당할 수 있게 된다.

출처

profile
레거시문서를 줄이자. 계속 업데이트해서 최신화한다.

0개의 댓글