1. Redis란 :
- Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)
- IMDB : 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조
- Single Thread : 명령어를 하나씩 처리하기 때문에 긴 명령어가 들어오면 처리될 때까지 후 순위의 명령어의 대기가 필요
- get, set과 같은 단순한 명령어의 경우 초당 10만 개 이상 처리가 가능
2. 활용 사례 :
- I/O가 많은 데이터 처리
- 사용자의 세션 관리
- API 캐싱
3. Redis의 데이터 구조 :
- Strings : 텍스트, 직렬화된 개체 및 이진 배열을 포함하여 바이트 시퀀스를 저장
- Lists : 문자열 값의 연결된 목록
- 스택과 큐를 구현
- 백그라운드 작업자 시스템 대기열 관리 구축에 용
- Sets : 고유한 문자열(구성원)의 정렬되지 않은 모음
- Sorted Sets : 연관된 점수로 정렬된 고유한 문자열(구성원)의 모음 / 둘 이상의 문자열이 동일한 점수를 갖는 경우 문자열은 사전순으로 정렬
- Hashes : 필드-값 쌍의 컬렉션으로 구성된 레코드 유형
- Streams : 일반적인 추가 전용 로그의 일부 한계를 극복하기 위해 여러 작업을 구현하는 데이터 구조
- 이벤트 소싱(예: 사용자 작업, 클릭 추적 등)
- 센서 모니터링(예: 현장 장치의 판독값)
- 알림(예: 각 사용자의 알림 기록을 별도의 스트림에 저장)
- Geospatial indexes : 좌표를 저장하고 검색에 사용
- Bitmaps : 실제 데이터 유형이 아니라 비트 벡터처럼 취급되는 문자열 유형에 정의된 일련의 비트 지향 작업에 최적
- Bitfields : 임의 비트 길이의 정수 값을 설정, 증분 및 조회가 가능
- HyperLogLog : 세트의 카디널리티를 추정하는 확률적 데이터 구조
4. Redis 사용 시 주의할 점 :
- 서버에 장애가 발생했을 때, 대비책이 필요
- 인메모리 데이터 저장소의 특성상, 서버에 장애가 발생했을 경우 데이터 유실이 발생이 가능
- 컴퓨터 자원의 관리가 필요
- 인메모리 데이터 저장소기 때문에 메모리 관리가 중요
- 처리하는데 시간이 오래 걸리는 요청, 명령은 기피
- 싱글 스레드의 특성상, 한 번에 하나의 명령만 처리가 가능
5. Redis 세부 개념 :
- 데이터 이중화 구조(Master-Slave) : Redis Replication
- 분산 처리 : Redis cluster
- 장애 복구 시스템 : Redis Sentinel, Redis Topology, Redis Sharding, Redis Failover 등
반응형
'Data > Redis' 카테고리의 다른 글
[Redis] Pub/Sub (0) | 2023.07.19 |
---|---|
[Redis] Redis-cli 기본 명령어 (0) | 2023.07.11 |