-
Redis 란 ?
- Redis는 "Remote Dictionary Server"의 약자로, 인메모리 데이터 구조 저장소이다.
주로 데이터베이스, 캐시 및 메시지 브로커로 사용된다.
-
장점
- 인메모리 데이터 구조 저장소로 인해 매우 빠른 읽기/쓰기를 지원한다.
- 다양한 데이터 구조를 지원하여 다양한 용도로 활용할 수 있다.
- 디스크에 스냅샷 또는 Append-Only 파일 방식으로 저장하여 데이터 유실 방지 가능하다.
- 분산 캐싱으로 인해 캐시 관리를 효과적으로 할 수 있다.
-
단점
- 데이터를 메모리에 저장하기 때문에 데이터의 양이 제한적이다.
- 간단한 Key-Value 쿼리에 최적화되어 있으며, 복잡한 쿼리를 지원하는 데는 제약이 있다.
- 분산 환경을 위한 클러스터링이 기본적으로 제공되지 않는다.
- 데이터 장애에 대한 복구 기능이 제한적이다.
-
특징
- 인메모리 데이터베이스: 데이터를 메모리에 저장하여 매우 빠른 읽기/쓰기 성능을 제공
- 데이터 구조 지원: 문자열, 리스트, 해시, 집합, 정렬된 집합 등 다양한 데이터 구조를 지원
- 특정 작업을 위해 원자적으로 수행하는 기능을 지원
( ex. 인크리먼트 증가 또는 디크리먼트 등이 있습니다. )
- Pub/Sub 기능을 지원하여 메시지 브로커로 사용할 수 있다.
여러 클라이언트가 채널을 구독하고 발행자가 해당 채널로 메시지를 보낼 수 있습니다.
-
원자적으로 수행하는 기능이란 ?
- 여러 개의 명령을 하나의 논리적 작업 단위로 처리하는 기능을 의미한다.
- 이러한 기능을 통해 멀티스레드 환경에서 동시에 여러 개의 클라이언트 요청을 처리할 때, 데이터 일관성과 안정성을 보장한다.
-
원자적으로 수행하는 대표적인 명렁은 ?
-
MULTI
- 원자적으로 수행하고자 하는 명령들을 MULTI 이후에 입력한다.
-
EXEC
- 명령들을 실행하려면 EXEC 를 입력한다.
- MULTI ~ EXEC 사이의 모든 명령들은 하나의 논리적인 트랜잭션으로 처리한다.
- 다른 클라이언트의 요청과 혼합되지 않고 순차적으로 실행된다.
- 트랜잭션 중에 오류가 발생하면 Redis 는 해당 트랙잭션을 롤백한다.
-
WATCH
- 특정 키를 감시하도록 지정할 수 있다.
- 지정된 키는 EXEC 명령 수행 시점에 다른 클라이언트에 의해 변경되지 않았을 때만 EXEC 명령이 수행된다.
-
DISCARD
- EXEC 명령을 실행하기 전에 원자적인 작업을 취소할 수 있다.