-
Redis 1 - Redis란? Redis VS MemcachedRedis 2021. 4. 6. 17:56
본 포스팅은 Redis에 대해 알아보고, Spring Boot 프로젝트에 적용해 활용해보는 목적으로 작성되었습니다.
레디스 소개
Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈소스인 In Memory NoSQL입니다.
레디스의 특징
- 오픈소스 소프트웨어
- 싱글 스레드 기반으로 동작
- NoSQL & Cache 솔루션, 메모리 기반의 데이터 저장소
- 분산 서버 구성 가능
- 고 가용성, 고 기능성
- Key - Value 방식으로 동작
- Value 값으로 자료구조를 지원한다 ( String, List, Set, Hash 등 )
레디스의 장점
- 다양한 데이터 형식 지원
- 고 가용성과 빠른 속도
- 유연한 데이터 저장
레디스의 단점
- Sigle Thread로 동작 하나의 명령어만 실행할 수 있지만 속도가 빨라 크게 문제되지 않는다. 하지만 데이터가 많을 때 처리시간이 긴 명령어 ( keys * )를 앞, 중간에 배치하면 뒤에 배치된 명령어가 timeout으로 실패할 수 있다.
- 메모리 사용량의 증가 Copy - On - Write 방식으로 동작하고, 쓰기 작업을 시작할 때 수정할 메모리 페이지를 복사한 후에 쓰기 작업을 진행하기 때문에 추가적인 메모리 공간이 필요하다.
다른 NOSQL과의 비교
비교 대상은 Redis와 비슷한 Key-Value 타입인 Memcached로 특징과 차이점을 알아보겠습니다.
MemChached 특징
- Key-Value 방식
- 캐시 솔루션
- 메모리에만 데이터를 저장해 복구가 불가능
- String만 사용 가능
- 멀티 스레드로 동작
Redis VS Memcached
- 솔루션의 차이
Redis ⇒ NOSQL & Cache 솔루션
Memcached ⇒ Cache 솔루션 - 데이터의 저장과 복구
Redis ⇒ 저장, 데이터의 유지로 데이터 복구 가능
Memcached ⇒ 데이터 복구 불가능 - 데이터 타입의 차이
Redis ⇒ List, Set, Hash 등 지원
Memcached ⇒ String
상황에 따른 선택
- MemCached
- 메모리가 삭제되어도 원본 데이터로 복구가 가능하며 장애가 발생하지 않는 경우
- 단순 조회로 통신 속도만을 향상시키는 목적인 경우
- Redis
- 메모리가 삭제되었을 때 서비스 장애가 발생할 수 있는 경우
- 서비스의 특정 기능을 위한 목적으로 사용하는 경우 ( 다양한 데이터 타입을 활용해서 사용할 때 등 )
'Redis' 카테고리의 다른 글
Redis 5 - Spring Boot와 Redis의 연결 (0) 2021.04.06 Redis 4 - Redis의 자료구조 및 명령어 [ Set ] (0) 2021.04.06 Redis 3 - Redis의 자료구조 및 명령어 [ Key ] (0) 2021.04.06 Redis 2 - Redis의 자료구조 및 명령어 [ List편 ] (0) 2021.04.06