Redis 기초(1)

시바코코개발자·2023년 11월 10일
0

레디스

목록 보기
1/3

1. Redis란?

"Remote Dictionary Server"의 약자로, 고성능의 키-value구조 데이터를 메모리 내에 저장하는 인-메모리 데이터베이스(*데이터를 주기억장치 또는 RAM에 저장하고 관리하는 데이터베이스 시스템)입니다.

*** 인-메모리 데이터 베이스의 주요 특징

  1. 높은 성능: 메모리는 디스크에 비해 훨씬 빠르기 때문에 데이터에 빠르게 접근할 수 있습니다. 이로 인해 쿼리 응답 시간이 획기적으로 줄어들 수 있습니다.

  2. 실시간 처리: 인-메모리 데이터베이스는 디스크 기반의 데이터베이스보다 빠른 응답 시간을 제공하므로 실시간 데이터 처리 및 분석에 적합합니다.

  3. 복잡한 분석 및 질의: 메모리에 데이터가 적재되어 있기 때문에 복잡한 분석 작업 및 다양한 질의에 대한 처리가 효율적으로 이루어집니다.

  4. 적은 디스크 I/O: 디스크 I/O는 데이터 베이스 성능에 영향을 미치는 주요 bottleneck 중 하나입니다. 인-메모리 데이터베이스는 디스크 I/O를 최소화하고 데이터를 메모리에 보관하여 성능을 향상시킵니다.

5.주로 OLAP(On-Line Analytical Processing)작업에 적합: 대규모 데이터 집합에서 복잡한 분석 및 의사결정 지원을 위해 사용됩니다.

인-메모리 데이터베이스는 주로 실시간 분석, 대규모 트랜잭션 처리, 실시간 의사결정 등의 응용 분야에서 활용됩니다.

*** 인메모리 데이터 베이스의 단점

  1. 비용: 메모리는 상대적으로 비싸기 때문에, 대용량의 메모리를 사용하는 인-메모리 데이터베이스를 구축하는 데는 높은 시스템 비용이 들 수 있습니다.

  2. 제한된 저장 용량: 메모리는 일반적으로 디스크보다 저장용량이 작습니다. 따라서 대용량 데이터를 처리해야 하는 경우에는 추가적인 데이터 관리 전략이 필요할 수 있습니다.

  3. 비휘발성: 메모리는 전원이 차단되면 저장된 데이터를 잃게 됩니다. 이는 전체 시스템에 대한 백업 및 복구 전략이 필요하다는 것을 의미합니다.

  4. 시스템 확장의 어려움: 메모리를 확장하려면 새로운 메모리를 추가하거나 기존 메모리를 대체해야 합니다. 이는 시스템의 다운타임이나 재구성을 필요로 할 수 있습니다.

  5. 적절한 사용 사례의 선택: 모든 응용 프로그램이나 데이터베이스에 적합한 것은 아니고, OLAP(ONLINE Analytical Processing)와 같은 분석적인 작업에 적합하지만, OLAP(ONLINE Transaction Processing)와 같은 대규모 트랜잭션 처리에는 적합하지 않을 수 있습니다.

  6. 메모리 관리의 어려움: 대용량의 메모리를 사용하는 경우 메모리 관리가 복잡해질 수 있습니다. 적절한 인덱스 및 쿼리 최적화가 필요하며, 메모리 누수나 프로세스가 사용하는 메모리 양을 신중하게 관리해야합니다.

  7. 보안 문제: 메모리에 데이터가 저장되기 때문에 보안 정책에 민감할 수 있습니다.

그럼에도 Redis를 사용하는 이유는

앞에서 말했던 높은 성능, 그리고 다양한 데이터 구조(문자열,해시,리스트,셋)를 지원하고 개발자들이 다루기 쉽습니다. 또한 Publish/Subscribe - 모델을 지원하여 실시간 메세징 시스템을 구축할 수 있습니다. 또한 캐싱을 사용하기 때문에 데이터베이스 부하를 줄일 수 있습니다. 무엇보다 오픈 소스이기 때문에 무료입니다.

0개의 댓글