728x90
ElastiCache
- AWS 클라우드상의 분산 인 메모리 캐시 환경을 손쉽게 설정 및 관리하고 및 확장할 수있게 해주는 서비스
- 지원 : Redis, Memcache
- In-Memory 환경의 Key-Value 저장소
- 각종 모니터링 및 알림 기능 지원
- 기대효과 : DB 부하 분산을 통한 DB 비용 감소 및 어플리케이션 지연 감소
Memcached
특징
- Memory에만 저장
- 멀티스레드 방식
- 데이터의 영속성을 지원하지 않음
- 수평적 확장 가능
- Client Library를 통해 Consistent Hashing 방식으로 노드 별 저장하는 방식
- 노드 장애 시 복구 불가
- 내부 메모리 관리가 Redis 보다 간단하여, 보다 작은 메모리 사용
데이터 구조
- String Type만 지원
- Key 최대 250 bytes, Value약 1MB 저장 가능
* Memcashed를 선택할 때는 가능한 단순한 모델로서 사용이 유리하며, HTML코드 조각과 같이 상대적으로 작고 정적인 데이터를 캐싱할 때 고려하는 것이 좋음
Redis
특징
- 다양한 데이터 유형 지원
- 싱글 스레드 방식
- 데이터의 영속성을 지원(TTL 미설정 시)
- Replica기능 및 클러스터를 통해 AZ간 Fail-over 가능
- RDB, AOF 설정을 통한 지속성
데이터 구조
- Strings
Key : value = 1 : 1
최대 512MB까지 지원 - Lists
Key : value = 1 : n
큐, 스텍구조로 사용됨 - Sets
Key : value = 1 : n
Value 입력 순서대로 저장, 중복 값이 저장되지 않음
Sets의 집합 연산 지원 - Sorted Ses(Zsets)
Key 하나에 여러개의 Score와 Value로 구성
Score에 따라 오름치순으로 정렬 - Hashes
Key 하나에 여러개의 field와 value로 구성
Field 제한이 없음
RDB 테이블처럼 사용가능 - Pub/Sub
메시지 기능을 제공, 통로는 체널을 이용 - HyperLogLog
집합의 원소 개수를 구하는 구조 - Geo
두 지점 / 도시의 경도와 위도를 기준으로 두 지점의 거리를 구함
* 다양한 메모리 관리 정책(maxmemory-policy)
- noeviction : 캐시를 지우지 않는 정책으로 메모리 전부 사용하면 에러
- allkeys-lru : 가장 최근에 사용하지 않은 LRU키를 먼저 제거
- allkeys-random : 임의의 키를 제거
- allkeys-lfu : 가장 적게 사용된 키만 삭제
- volatile-lru : LRU 알고리즘 기반으로 Expire Set 안에서 삭제
- volatile-random : 임의의 키를 Expire Set 안에서 삭제
- volatile-lfu : 가장 적게 사용된 키만 Expire Set 안에서 삭제
- volatile-ttl : TTL이 짧은 순으로 Expire Set 안에서 삭제
728x90
'참고' 카테고리의 다른 글
쿠키 vs 세션 ? (0) | 2021.07.06 |
---|---|
Redis Architecture OverView (0) | 2021.06.27 |
비동기 통신 (0) | 2021.06.27 |
HTTP 응답 상태 코드 (0) | 2021.06.24 |
[MQ] KafKa (0) | 2021.06.10 |
댓글