Study Memory Work
[Redis] redis란? 자료구조 기초 본문
NoSql의 종류
- 서로 연관된 그래프 형식의 데이터를 저장할 수 있는 Graph Store
- Row가 아닌 Column 위주로 데이터를 저장하는 Column Store
- 비정형 대량 데이터를 저장하기 위한 Document Store
- 메모리 기반으로 빠르게 데이터를 읽어올 수 있는 Key-Value Store
Redis
인메모리 데이터베이스 NoSQL. Key-Value Store.
Remote Dictionary Server의 약자로, 원격 Dictinary 자료구조 서버 라는 직관적인 이름을 가지고 있다.
Redis는 인메모리DB 중에서도 다양한 자료구조의 데이터를 저장할 수 있음. (문자열, 리스트, 해시, 셋 등)
메모리 기반의 데이터베이스이기 때문에, Disk를 기반으로 하는 RDBMS보다 read가 빠르다.
DBMS로서의 장점
- TTL 설정 → 일정 시간이 지나면 데이터 삭제, 용량이 작은 메모리의 효율적 관리
- 분산 데이터 저장소 구성 → Redis Cluster 등 분산환경에서 안정적인 데이터 관리 가능
- 보안체계 → 악성 스크립트 공격으로 부터 안전 보장, TLS 지원
Redis 영속성 옵션
레디스는 지속성을 보장하기 위해 데이터를 DISK에 저장. 서버가 내려가더라도 DISK에 저장된 데이터를 읽어서 메모리에 로딩데이터를 DISK에 저장.
- RDB(Snapshotting) 방식
- 순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨 담는 방식
- AOF (Append On File) 방식
- Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태
Redis 자료구조
# key-value
# 입력
set {key} {"value"}
# 추가
append {key} {"value"}
# 출려
get {key}
# set
# 입력
sadd set:{key} {value1}
sadd set:{key} {value2}
sadd set:{key} {value3}
sadd set:{key} {value4}
# 출력
smembers set:{key}
# sortedSet
# 입력
zadd {key} {가중치} {value1}
zadd {key} {가중치} {value2}
zadd {key} {가중치} {value3}
zadd {key} {가중치} {value4}
# 출력
zrange {key} {출력범위}
# hashMap
# 입력
hset {key} {value1} {value2}
hset {key} {value3} {value4}
# 출력
hgetall {key}
'Data' 카테고리의 다른 글
[Kafka] kafka 실행 오류 (Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)java.net.BindException: Address already in use) (0) | 2023.05.25 |
---|---|
[Netapp] Netapp을 통한 Metric 수집 리서치 (0) | 2023.03.31 |
[Ansible] Ansible이란? (0) | 2023.01.03 |
[SSH] VsCode 'Remote - SSH' 를 통해 원격 접속하기 (0) | 2022.12.19 |
Metricbeat 설치 / 실행 (0) | 2022.12.07 |