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 |
---|