본문 바로가기
데이터베이스(DB)

Redis란?

by 반도체는 프로그래밍을 좋아해 2023. 3. 20.
728x90

 

Redis: In-Memory Key-Value Store

Redis는 in-memory 기반의 key-value 저장소입니다. Redis는 NoSQL 데이터베이스로 분류되며, 다른 NoSQL 데이터베이스와 마찬가지로 수평 확장 및 분산 처리를 지원합니다.

Redis의 특징

    • in-memory 데이터 저장: Redis는 데이터를 디스크에 저장하는 대신, 메모리에 저장하여 빠른 속도와 저지연성을 보장합니다.
    • key-value 데이터 모델: Redis는 데이터를 key-value 쌍으로 저장합니다. 이것은 관계형 데이터베이스와는 다른 방식이며, 데이터를 검색하고 수정하는데 사용할 수 있는 다양한 커맨드를 제공합니다.
    • NoSQL 데이터베이스: Redis는 NoSQL 데이터베이스로 분류됩니다. 이것은 schema-less 데이터 저장소를 의미하며, 관계형 데이터베이스처럼 정해진 데이터 모델을 강제하지 않습니다.
    • 다양한 데이터 타입 지원: Redis는 다양한 데이터 타입을 지원합니다. 문자열, 리스트, 셋, 정렬된 셋 등의 데이터 타입을 사용할 수 있습니다.
    • Pub/Sub 메커니즘: Redis는 Pub/Sub 메커니즘을 지원합니다. 이를 이용하면 여러 클라이언트 간의 메시지를 주고받을 수 있습니다.

Redis란 무엇인가?

Redis는 오픈소스, 인메모리 데이터 저장소이며, 다양한 데이터 구조, 높은 성능, 클러스터링, Pub/Sub 메커니즘 등의 기능을 제공합니다.

NoSQL 데이터베이스

Redis는 NoSQL 데이터베이스입니다. NoSQL은 "Not Only SQL"의 약자로, 관계형 데이터베이스가 아닌 데이터베이스를 일컫는 말입니다. NoSQL 데이터베이스는 스키마가 없거나 유연한 스키마를 갖추고 있으며, 수평적 확장이 용이하다는 특징이 있습니다.

주요 기능

    1. 다양한 데이터 구조: Redis는 문자열, 해시, 리스트, 셋, 정렬된 셋 등 다양한 데이터 구조를 제공합니다.
    2. 높은 성능: Redis는 메모리에 데이터를 저장하므로 디스크 I/O가 필요하지 않습니다. 따라서 매우 빠른 속도를 자랑합니다.
    3. 클러스터링: Redis는 클러스터링을 지원하여 수평적 확장이 가능합니다.
    4. Pub/Sub 메커니즘: Redis는 Pub/Sub 메커니즘을 지원하여 메시지 브로커나 메시지 큐 등의 용도로 활용될 수 있습니다.
    5. Replication: Redis는 Master-Slave 구조를 지원하여 데이터 복제가 가능합니다.
    6. Lua scripting: Redis는 Lua 스크립트를 실행할 수 있는 기능을 제공합니다.
    7. LRU eviction: Redis는 LRU 알고리즘을 사용하여 가장 최근에 사용하지 않은 데이터를 삭제할 수 있습니다.
    8. Transactions: Redis는 여러 명령어를 하나의 트랜잭션으로 묶어 실행할 수 있습니다.
    9. Different levels of on-disk persistence: Redis는 데이터의 지속성을 위해 다양한 수준의 디스크 지속성을 제공합니다.
    10. Redis Sentinel: Redis Sentinel은 Redis 인스턴스의 가용성을 모니터링하고 자동으로 장애 복구를 수행하는 기능을 제공합니다.
    11. Geospatial indexing: Redis는 지리 정보를 저장하고 검색할 수 있는 지리공간색인 기능을 제공합니다.
    12. HyperLogLog: Redis는 HyperLogLog 알고리즘을 사용하여 매우 큰 고유 수를 추정하는 것이 가능합니다.
    13. Bitmaps: Redis는 Bitfields를 지원하여 비트맵을 저장하고 검색할 수 있습니다.
    14. Redis Streams: Redis Streams는 여러 소스로부터 실시간으로 데이터를 수집하고 처리할 수 있는 기능을 제공합니다.
    15. Pub/Sub: Redis는 Publish/Subscribe 패턴을 사용하여 다른 클라이언트에게 데이터를 전달하는 메커니즘을 제공합니다.
    16. Transactions: Redis는 다중 명령어를 묶어서 하나의 트랜잭션으로 실행할 수 있습니다.
    17. Lua scripting: Redis는 Lua 스크립트를 실행할 수 있습니다.
    18. LRU eviction: Redis는 LRU 알고리즘을 사용하여 최근에 사용되지 않은 키를 삭제합니다.
    19. Different levels of on-disk persistence: Redis는 RDB 스냅샷과 AOF(Append Only File) 방식의 지속성 저장 기능을 제공합니다.
    20. Replication: Redis는 데이터를 다른 서버로 복제하여 데이터의 가용성과 안정성을 보장할 수 있습니다.

Redis는 BSD 라이선스로 배포되어 있으므로 누구나 무료로 사용할 수 있습니다. 또한 Redis는 오픈소스로 개발되어 있기 때문에 소스코드를 확인하고 수정할 수 있습니다.

Redis는 유연하고 확장성이 높은 인-메모리 데이터 저장소로서, 많은 양의 데이터를 빠르게 처리할 수 있습니다. 따라서 Redis는 캐싱, 메시지 브로커, 세션 관리, 리더보드 등 다양한 분야에서 활용됩니다.

728x90

'데이터베이스(DB)' 카테고리의 다른 글

DB 용어정리(HA, RAC, TTL, Cluster)  (0) 2023.12.26
MongoDB JSON과 BSON 설명  (0) 2023.04.13
NoSQL과 RDBMS 그 차이  (0) 2023.04.13
몽고DB(MongoDB)란?  (0) 2023.04.12
데이터베이스 스키마란?  (0) 2023.04.10