ElastiCache Redis and Memcached
aws에서 제공하는 인메모리 데이터베이스 엘라스틱캐시의 두가지 방식에 대해서 서술해보려고 한다.
자세한 내용은 추후에 적도록 하겠다....
ElastiCache(이하 앨라스틱캐시)는 완전관리형 인 메모리 캐싱 서비스이다.
일반적으로 구하는데 비용(시간)이 많이드는 데이터 등을 캐시해서 성능을 개선하기 위해 많이 사용된다.
앨라스틱캐시를 사용하려면 Redis(이하 레디스) 또는 Memcached(이하 멤캐시드) 중 하나를 선택해서 사용해야 한다.
레디스와 멤캐시드 둘 다 인 메모리 데이터베이스로 Key-Value 스토어 이다.
특징 | Memcached | Redis |
---|---|---|
Sub-millisecond latency | O | O |
Developer ease of use | O | O |
Data partitioning | O | O |
Support for a broad set of programming languages | O | O |
Advanced data structures | - | O |
Multithreaded architecture | O | - |
Snapshots | - | O |
Snapshots | - | O |
Replication | - | O |
Transactions | - | O |
Pub/Sub | - | O |
Lua scripting | - | O |
Geospatial support | - | O |
Data type | String | String, Set, List, Hash,Sorted set, HyperLogLog, Bitmap, Bitfield, Stream , Geospatial indexes |
Data expire time | O | O |
위의 비교를 봤을때 Redis 를 선택하는게 현명할 것 같다.
오직 멀티스레드 영역에서만 멤캐시드가 지원되고 레디스는 싱글스레드라는 건데,
Redis 3.0 부터 클러스터를 지원하고 있다.
물론 멤캐시드가 간단하게 만들었기에 간단한 사용을 위해 사용을 위해 선택할 수 있다.
레디스를 싱글 인스턴스로 사용하면 싱글스레드이기 때문에 한번에 하나의 연산만 할 수 있다. 그렇기 때문에 전체 복사나 삭제와 같은 같은 작업을 하면 문제가 일어날 수 있다.
레디스가 멤캐시드에 비해 더 많은 API를 제공하기도 하고 여러 장점이 있어서
이번에 신규 개발하는 기능에서 성능을 위해