[F-Lab 모각코 챌린지] 35일차 - Redis 특징, 기능

F-Lab 모각코 챌린지 35일차 학습 기록 Redis 의 기본 지원 기능 및 특징을 알아보고 NoSQL 이 무엇인지 알아보았습니다

[F-Lab 모각코 챌린지] 35일차 - Redis 특징, 기능

Redis

Remote Dictionary Server

소개

Redis 는 TCP 소켓과 간단한 프로토콜을 사용하여 서버-클라이언트 모델을 통해 가변 데이터 구조에 대한 액세스를 제공하는 데이터베이스 애플리케이션이다

유명한 NoSQL 데이터베이스 중 하나이다

NoSQL?

다양한 유형의 데이터베이스를 포함하는 개념

  • 키-값 스토어(Key-Value Stores): [Redis, Riak, Amazon DynamoDB]
    데이터를 고유한 키와 연결하여 저장하는 데이터베이스
  • 문서 데이터베이스(Document Database): [MongoDB, Couchbase]
    JSON, XML 과 같은 문서 형식으로 데이터를 저장하는 데이터베이스
  • 와이드 컬럼 스토어(Wide Column Stores): [Apache Cassandra, ScyllaDB]
    행과 열의 조합으로 데이터를 구성하는 데이터베이스
  • 그래프 데이터베이스(Graph Databases): [Neo4j, Amazon Neptune]
    데이터간의 관계를 그래프로 표현하고 쿼리하는 데이터베이스
  • 열 지향 데이터베이스(Columnar Database): [Apache HBase, Apache Kudu]
    열 단위로 데이터를 저장하여 분석 작업에 특화된 데이터베이스

특징

  • In Memory 데이터 저장
  • 다양한 데이터 구조 지원
  • 지속성 옵션 (데이터 집합을 주기적으로 디스크 덤프 가능)
  • 데이터 복제와 고가용성 (서버간 데이터 복제 가능)
  • 풍부한 기능과 확장성 (트랜잭션, Pub/Sub 메시징, 비동기처리 등의 기능 지원)

지원 기능

  • 트랜잭션(Transaction)
    데이터베이스에 존재하는 트랜잭션이 여기서도 지원된다
    Redis 의 트랜잭션은 MULTI, EXEC, WATCH, UNWATCH 명령어를 사용하여 처리한다
  • Pub/Sub
    Redis 에서 제공하는 메시징 시스템
    Publisher, Subscriber 로 나뉘어 특정 메시지를 발행, 구독하여 메시지 기반의 통신을 구현할 수 있다.
  • Lua Scripting
    Lua 는 Redis 서버에서 실행되는 스크립트 언어이다.
    복잡한 연산이나 조작을 수행하기 위해 사용 하는데, Redis 에 Lua 스크립트를 전송하면 Redis 는 받은 스크립트를 실행하고 결과를 리턴 받을 수 있다.
  • 키 생존시간 제한
    Redis 에는 키 생존시간을 제한 할 수 있다 (TTL: Time-To-Live)
    지정된 시간이 지나면 Redis 는 해당 키를 자동으로 삭제한다.
    캐시 등의 용도로 사용되는 편이다
  • LRU(Last Recently Used) 방식에 의한 키 제거
    Redis 는 LRU 알고리즘을 사용하여 메모리에 있는 키 중 최근에 사용되지 않은 키를 자동으로 제거 해 준다
    이를 통해 메모리를 최적화 한다
  • 장애 자동 해결
    자동 장애 조치 기능을 제공하여 고가용성을 보장한다
    예를 들어 여러 개의 Redis 인스턴스를 구성하고, 하나의 인스턴스에 장애가 발생하면 Redis 는 자동으로 다른 인스턴스로 전환하여 서비스 중단을 최소화 한다.

Redis 는 책이 따로 존재하지 않아서 학습 할 커리큘럼을 알기 힘들다..

물론 인터넷에서 키워드를 얻어 공부하면 되겠지만... 커리큘럼 용도의 책이 있다면 추천을 받고싶다.