본문 바로가기

Database/Redis

Redis

1. how to use

  • brew install redis
  • brew services start redis
  • brew services stop redis
  • brew services restart redis

2. rails with redis with database

1) redis - database

  • database 내 자료를 서버 메모리에 key와 value 형태로 저장(caching)

2) rails - redis

  • 메모리에 저장(캐싱) key 참조해서 value 가져옴.

3. RDBMS vs Redis DB

1) RDBMS

  • 파일 기반의 데이터 저장 구조
  • 의미
    • 사용자가 입력, 수정, 삭제, 조회하는 모든 데이터는 1차적으로 메모리에 우선 저장된다.
    • 2차적으로 디스크에 존재하는 파일에 저장되며 파일들은 DBMS에 의해 할당되고 자동으로 관리되는 시스템

2) Redis DB

  • 순수 인메모리 기반의 데이터 저장 구조
  • 의미
    • 1차적으로 모든 데이터는 메모리에 저장되며
    • 사용자 명령어 또는 시스템 환경 설정 방법들을 통해 필요에 따라 선택적으로 디스크에 존재하는 파일에 저장된다.
    • 하지만 해당 파일은 DBMS에 의해 할당되거나 자동 관리되지 않으며 필요에 따라 사용자는 수동 관리할 수 있다. 만약 사용자가 추가적인 관리를 안 해주면 모든 데이터는 메모리 상에만 존재하며 예기치 못한 장애가 발생했을 때 모든 데이터는 유실된다.
    • , 크리티컬한 비즈니스 환경에서 메인 DB 사용하는 것은 한계가 있다.

 

3. NoSQL

  • RDBMS의 대체, 보완 기술
  • Data 저장구조
    • Collection, Table, Node라고 하며 비정형 구조라고 표현.
  • 빅데이터 처리에 효과적

4. Redis

1) 특징

(1) 키-벨류 데이터베이스 대표 제품 중 하나

(2) Remote Directory System

(3) Isolation & Lock

  • 읽기 일관성과 데이터 공유를 위해 Data Set(Key-value) Lock을 제공한다.
  • 트랜잭션 제어를 위해 Read Uncommitted과 Read Committed 타입 2가지 유형을 제공
  • 하지만 관계형 DB처럼 commit과 rollback을 수행하면 빠른 쓰기와 읽기를 제공할 수 없다.

(4) CAS(Check And Set)

  • 데이터의 일관성과 공유를 위해 데이터 동시 처리가 발생할 때, 먼저 작업을 요구한 사용자에게 우선권을 보장하고 나중에 작업을 요구한 사용자의 세션에서는 해당 트랜잭션에 충돌이 발생했음을 인지할 수 있도록 해야 한다. 이것을 CAS라고 한다.

(5) 핵심

  • Redis 서버는 대표적인 key-value 데이터베이스이며 인-메모리 기반의 데이터 처리 및 저장 기술로 구현되는 제품이다. 또한 초당 수만~수십만 건의 데이터를 저장할 수 있으며 동시 읽기 작업을 통해 빅데이터 분석 및 가공 처리를 목적으로 사용되는 기술이다.
    • 메모리 부족으로 인한 일시적인 성능 지연 문제
      • redis 4.0 이후부터 swapDB 기능 제공.

'Database > Redis' 카테고리의 다른 글

redis settings  (0) 2022.01.30