반응형
소개
- Redis는 "Remote Dictionary System" 약자로 오픈소스 기반의 비관계형 인모메리 데이터 구조
- Key-Value 데이터 구조에 기반한 다양한 형태의 자료 구조를 제공한다.
- 최신 버전은 PUB/SUB 형태의 기능을 제공한다. 즉, 데이터 저장 뿐만 아니라 메시지 브로커 등 다양한 목적으로 사용할 수 있다.
- 싱글 쓰레드에서 동작한다.
Redis Data Type
- 하나의 컬렉션에 너무 많은 데이터를 담으면 좋지 않다
- 가능하면 10000개 이하의 수준의 데이터 셋을 유지하는게 Redis 성능에 영향을 주지 않는다
Strings
- 텍스트, 직렬화된 객체 및 이진 배열을 포함한 등을 저장
- String으로 될 수 있는 Binary, JPEG 이미지도 저장 가능하다
- 문자열의 최대 크기는 512MB
- 단순 증감 연산에도 좋음
- 시간복잡도 O(1)를 갖지만 SUBSTR, GETRANGE 명령에 의해 O(N) 시간복잡도를 가짐
- Key와 Value가 1대1 관계
Bitmaps
- String의 변형
- bit 단위 연산 가능
- String이 512MB 저장 할 수 있듯이 2^32 bit까지 저장 가능하다
- 저장 공간 절약에 큰 장점이 있다
- Key와 Value가 1대1 관계
Lists
- String 자료구조를 순서대로 저장
- 추가/삭제/조회는 O(1) 시간복잡도를 가지지만, 특정 index 값은 O(N) 시간복잡도를 갖는다
- 즉, head-tail에서 추가/삭제가 좋다 (push/pop) (Linked List가 아님)
- 메시지 Queue로 적절하다
- Key와 Value가 1대N 관계
Hashes
- field-value로 구성되어 있는 전형적인 hash 형태
- key 하위에 subkey를 이용해 추가적인 Hash Table을 제공하는 자료구조
Sets
- 중복을 허용하지 않는 자료구조
- 정렬되지 않은 집합
- Key와 Value가 1대N 관계
Sorted Sets
- Set 자료구조에 score라는 필드가 추가된 자료구조 (score는 일종의 가중치)
- score 필드가 추가 됨에 따라 순서관리
Streams
- Streams는 로그를 저장하기 좋은 자료구조
- append-only 이며 중간에 데이터가 바뀌지 않는다
References
반응형
'Open Source' 카테고리의 다른 글
자바 어플리케이션 성능 테스트 사전 조사 및 테스트 계획 (0) | 2023.05.31 |
---|---|
APM(Scouter) Alert 설정 및 지표, 기능, Plugin 활용 (0) | 2023.04.10 |
APM(Scouter) 소개 및 구축 (0) | 2023.04.07 |