Database(3)
-
Redis
Redis란? 캐싱 전략에 적합한 In-Memory 기반의 NoSQL 데이터베이스이다. 레디스는 Remote Dictionary Server의 약자입니다. Dictionary는 Java, Javascript에서의 Hashmap, Python에서의 Dictionary와 같이 Key-value를 사용해서 데이터를 반환하는 자료구조. 외부에 있는 Dictionary(Hash Map, Key-value)를 사용하는 서버이다. Database, Cache, Message broker In-memory Data Structure Store Supports rich data structure Only 1 Commiter Redis 특징 key-value 스토어 : 단순 스트링에 대한 Key-Value 구조를 지원 K..
2024.03.04 -
Cache
Cache란? 자주 오는 요청을 기억하고 같은 요청이 왔을 때 이미 사용했던 데이터를 효율적이고 빠르게 건내주는 것. 캐싱의 전략에는 여러가지가 존재하는데 다음과 같다. 1. Cache Aside 해당 방식은 캐시 서버를 두고 필요할 때만 데이터를 캐시에 로드하는 전략이다. 요청이 들어오면 로직은 다음과 같이 동작한다. case1) 캐시 저장소에 데이터 없을 시 캐시 저장소에 데이터가 있는지 조회 → cache miss DB조회 후 데이터 반환받음 캐시 저장소에 반환받은 데이터를 저장 case2) 캐시 저장소에 데이터 존재 시 캐시 저장소에 데이터가 있는지 조회 → cache hit 바로 캐시 저장소에서 데이터를 반환받는다. 읽기가 많은 작업(read-heavy workloads)에 적합 DB에 기반한 ..
2024.03.04 -
Index
index란 데이터베이스 관리 시스템(DBMS)에서 데이터 검색 속도를 향상시키기 위해 사용되는 데이터 구조이다. 인덱스는 일반적으로 특정 테이블의 하나 이상의 열(column)에 생성되며, 해당 열의 값들을 빠르게 찾을 수 있게 도와준다. index 구조를 사용하기 위해서는 먼저 테이블의 열에 저장된 값들을 복사하여 정렬하는 것이 전제조건이다. string 형태도 마찬가지로 가나다순 등으로 정렬이 가능하다. 인덱스의 종류 binary search tree 각 노드의 왼쪽 자식 노드는 작은 값, 오른쪽 자식 노드는 큰 값들을 가지는 tree형태이다. 평균적으로 탐색하는데 걸리는 시간은 O(logn)이 소요된다. 한쪽으로 치우친 트리에서 최악의 경우로 O(n) 시간복잡도를 가질 수 있다. 2. B-tree..
2024.03.04