Redis 시작해보기

DataBase/NoSQL 2023. 6. 1. 22:30

Redis 는 가장 대표적인 NoSQL 의 Key-Value 모델을 따르는 저장소이다. -> Hash Map 이라 생각해보자.. 간단하게 알아보는 대표적 특징 1. In-memory 저장소로 아주 빠른 접근 속도를 제공한다. 2. 세션 관리나 캐시 등의 목적으로 자주 사용된다. 3. Key-Value Store 이므로, 분산 환경을 제공하여 데이터 관점의 Shard(Cluster, Scale-Out) 가 가능하다. (물론, HA를 위한 Replica, Sentinel 개념도 존재) 4. Key 를 통해서만 값을 읽을 수 있다. (Value 단독 조회 불가능) 5. 범위 조회 등의 복잡한 질의 불가능 6. In-Memory 데이터를 주기적으로 디스크에 스냅샷으로 저장(RDB)하거나, 모든 변경을 로그 파..

MongoDB 구조

DataBase/NoSQL 2023. 5. 18. 20:20

MongoDB 의 구조에 대해 알아보자 관계형 DB와 용어간 매핑하여 MongoDB 구조 알아보기 RDBMS MongoDB Database Database Table Collection Row Document Column Field MongoDB Database MongoDB의 Database 단위는 관계형 DB의 Database 단위와 같다. 관계형 DB에서 Table 집합이 Database 인데, MongoDB에서는 Collection 집합이 Database라 보면 된다. MongoDB 인스턴스 를 생성하면 처음에 무조건 생성되어있는 것은 admin, local, config 3가지 Database 가 생성되어있다. 이는 MongoDB 를 관리하는데 사용되는 기본 설정 Database 이다. Data..

관계형 데이터베이스 조회 최적화

DataBase/RDBMS 2023. 4. 29. 20:58

컴퓨터 구조 시간에 배운 것을 떠올려 보자.. CPU가 데이터를 저장하거나 조회하기 위해서는 I/O Bus를 통해 동작되는 것을 떠올릴 수 있다. 그리고, CPU가 데이터를 저장하기 위해서는 메모리와 디스크를 이용한다. 메모리는 전원이 차단되면 휘발되기 때문에, 데이터의 영속성을 위해서는 결국 디스크에 저장 된다. 디스크는 메모리에 비해 굉장히 느리다는 것을 익히 알고 있다. 그래서.. 데이터베이스 성능의 핵심은 결국 디스크 접근을 최소화 하는 것이다. 따라서, 메모리에 존재하는 데이터는 최대한 메모리로 끝내는게 좋다. -> 캐시 히트율 UP 그러면 쓰기도 메모리에 쓰면 좋지 않을까.. 메모리에 쓰면 데이터 유실이 생길 수 밖에 없는데.. 그러기 위해서는 WAL(Write Ahead Log)를 사용한다...

관계형 데이터베이스 조회와 쓰기 trade-off 1

DataBase/RDBMS 2023. 4. 29. 20:41

관계형 데이터 베이스에서 항상 고민해줘야 하는 부분들에 대해 알아보자.. 조회와 쓰기는 성능 관점에서 모두가 좋아지도록 만들 수 없다.. 지금부터 하나 씩 알아보도록 하겠다. 1. 데이터베이스 정규화/비정규화 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화(Normalization)라고 한다. 비유를 통해 알아보겠다. 우리가 소설을 쓴다고 생각해보자.. [A 상황] 1. 주인공의 이름이 김찬호인 300 Page 에 달하는 소설을 다 썻다. 2. 그런데 갑자기 주인공 이름을 손인욱이라는 이름으로 변경해야 할 상황이 생겼다. 3. 그러면 우리는 하나하나 모든 주인공 이름이 적힌 곳을 찾아가서 변경해줘야 할 것이다. (툴의 도움을 받지 않는다고 가정) 이번엔 두번째 상황을 보자 [B 상황] 1. 주인공..