티스토리 뷰

캐시 시스템을 사용하는 이유

 

DB, API 등의 호출이 빈번한 경우

서버에 많은 요청으로 인한 부하를 방지하기 위함이다.

캐시 시스템하면 가장 대표적이고 많이 비교하는 캐시 시스템인

Memcached와 Redis에 대하여 확인해 보았습니다.



Memcached 특징

  • 멀티스레드 지원
  • 스케일업 시 성능 향상 가능
  • LRU 알고리즘만 채택
  • Master/Master 리플리케이션 지원
  • Consistent Hashing을 통한 데이터 분산 지원


Redis 특징

 

  • 싱글스레드 지원
  • 다양한 데이터 구조 지원
  • 스냅샷
  • 복제
  • 트랜잭션
  • Pub(발행) Sub(구독) 메시지 패턴 지원
  • 루아 스크립트 지원
  • 위치기반 데이터 타입 지원
  • 다양한 data eviction 전략 지원


Memcached를 채택하는 경우

  • 캐싱하고자 하는 데이터가 단순한 문자열인 경우
  • 메모리가 소멸되어도 서비스에 영향이 없는 경우
  • 스케일업 형태의 확장


Redis를 채택하는 경우

  • 캐시 데이터를 안정적으로 유지해야 하는 경우
  • 캐싱하고자 하는 데이터가 복잡한 형태인 경우
  • 캐싱하고자 하는 데이터의 변경이 잦은 경우
  • 메모리가 소멸되면 서비스 장애를 유발하는 경우
  • 스케일아웃 형태와 확장

그 외 자주 사용하는 캐시 라이브러리
Ehcache

Ehcache Spring에서 간단하게 사용할 수 있는 Java기반 오픈소스 캐시 라이브러리이다.

redis나 memcached 같은 캐시 엔진과는 달리 ehcache는 별도의 데몬 형태의 구동 없이 애플리케이션 구동 시 Spring 내부적으로 캐싱 처리를 지원한다.

로컬 캐시 환경으로 캐시 서버와의 통신 장애에 대한 문제를 방지할 수 있고 애플리케이션과 라이프사이클이 함께 관리되는 장점이 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함