Redis
Redis란?
Remote Dictionary Server의 약자
1.인메모리 데이터스토어
2.key, value 사용
3.캐싱, 세션관리, 게임, 리더보드, 실시간 분석, 지형 공간, 라이드 헤일링, 채팅/메시징, 미디어 스트리밍 및 게시/구독 앱에서 주로 사용됨.
장점
1.성능
Redis의 데이터는 메모리에 상주하기때문에 데이터 액세스의 대기 시간을 낮추고 처리량을 높인다. 인 메모리 데이터 스토어에는 디스크로의 이동이 필요하지 않기 때문에 엔진 대기 시간이 매우 줄어든다.
2.유연한 데이터 구조
Redis와 비슷한 Memecached는 데이터 형식으로 String만 지원한다. 그에 반해 Redis는 다양한 데이터 구조를 지원한다.
Redis 데이터 형식
-String
-List
-Sets
-Sorted Sets
-Hashes
이 외에 더 있다.
3.사용 편의성
Redis를 사용하면 더 짧은 코드를 작성하여 애플리케이션 데이터의 저장, 액세스 등을 지원할 수 있다. 기존 데이터베이스의 쿼리 언어와 반대되는 단순한 명령 구조를 사용할 수 있다. 그리고 Java, Python, PHP .. 등등 다수의 언어가 지원이 된다.
4.지속성 및 복제
In Memory 데이터 스토어는 디스크로의 이동을 하지 않아서 메모리가 날아가면 데이터도 같이 사라지기 때문에 데이터를 잃어버리는 경우가 있지만 Redis는 지속성을 위해서 특정 시점 백업을 지원한다.(Redis 데이터를 디스크로 백업)
그리고 복제를 통해 비동기식 복제를 지원하므로 데이터가 여러 복제 서버에 복제 될 수 있다. 따라서 주 서버에 장애가 발생하는 경우 요청이 여러 서버로 분산 될 수 있으므로 향상된 읽기 성능과 더 빠른 복구 기능을 제공할 수 있다.
5.고가용성 및 확장성
Redis는 단일 노드 또는 클러스팅을 제공한다. 따라서 가용성이 높은 솔루션을 구축해 일관된 성능과 안정성을 제공한다. 스케일 업, 스케일인 or 스케일 아웃 등 다양한 옵션도 제공이 된다.
6.오픈 소스
단점
1.많은 메모리 사용량
기본적으로 memcached 대비 데이터 용량을 지원하기도 하지만, 동작방식에서 오는 메모리 사용량이 많다.
사용 사례
1.캐싱
Redis는 관계형 or NoSQL 데이터베이스와 애플리케이션의 로드를 줄일 수 있는 가용성이 뛰어난 인 메모리 캐시 구현에 매우 적합하다.
Redis를 사용하면 빈번하게 요청되는 항목을 매우 빠른시간 안에 응답할 수 있고, 데이터 베이스 쿼리 결과를 캐싱, 영구 세션 캐싱, 웹페이지 캐싱, 이미지파일, 메타데이터 등의 캐싱에 적합하다.
2.채팅,메시징 및 대기열
Redis는 다양한 데이터구조 옵션으로 게시/구독을 지원한다. 따라서 Redis에서는 고성능 채팅방, 실시간 코멘트 스트림을 지원할 수 있다.
Redis에서 List 데이터 포맷을 사용하면 간단한 대기열을 구현할 수 있다.
3.세션 스토어
Redis는 인터넷 규모의 애플리케이션을 위해 세션데이터를 저장 및 관리하려는 애플리케이션 개발에 적합하다. 사용자 프로필, 자격 증명, 세션 상태, 사용자별 개인화 등과 같은 세션 데이터를 관리하는데 필요한 적은 지연시간, 규모 및 복원을 제공한다.
'캐싱 > Redis' 카테고리의 다른 글
Redis Cache.. (0) | 2022.02.14 |
---|---|
Redis(2) - Docker에 Redis 설치하기 (0) | 2022.01.12 |
Comment