개발자는신이야
The first step
개발자는신이야
전체 방문자
오늘
어제
  • 분류 전체보기 (114)
    • 🍃웹개발 Spring (15)
    • ❓내 질문 (4)
    • 🔥웹개발종합반 (11)
    • 💻개인프로젝트 (5)
    • 😕error (2)
    • 💡알고리즘 (3)
    • 📖혼자공부하는자바 (22)
    • 📑WIL (2)
    • 🥸 CS 면접 스터디 (13)
    • 🤓천재교육 풀스택 1기 노트 (21)
    • ⏰정처기 공부 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dependencies
  • IntelliJ
  • HTML
  • jquery
  • 변수
  • Spring
  • database
  • style
  • JPA
  • CSS
  • Controller
  • db
  • API
  • repository
  • Lombok
  • CRUD
  • 기초
  • Java
  • SQL
  • boot

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자는신이야

The first step

🥸 CS 면접 스터디

In Memory 데이터베이스란

2023. 4. 25. 00:47

데이터베이스란

여러 사람이나 프로그램이 데이터를 쉽게 공유하기 위해 체계적으로 관리되는 데이터의 집합을 말합니다.

 

In-Memory DB란

데이터를 주 메모리(RAM)에 저장하는 데이터베이스의 한 종류입니다.

따라서 인메모리DB는 데이터베이스의 일종이지만, 일반적으로 말하는 데이터베이스는 디스크와 같은 비휘발성 저장소에 데이터를 저장하고, 필요할 때 메모리로 로딩하여 처리하는 방식을 사용합니다.

 

따라서, 인메모리DB와 일반적인 DB의 가장 큰 차이점은 데이터를 저장하는 위치에 있습니다.

인메모리DB는 데이터를 주 메모리에 저장하여 빠른 속도로 데이터를 처리할 수 있지만, 시스템의 장애나 전원 문제 등이 발생하면 데이터가 손실될 가능성이 있습니다.

반면에 일반적인 DB는 비휘발성 저장소에 제이터를 저장하기 때문에 안정적이지만, 디스크 I/O 작업으로 인해 느린 처리 속도를 보일 수 있습니다.

 

인메모리DB의 종류로는

Redis, Memcached, Apache Ignite, VoltDB, H2 Database가 있습니다.

 

Rdis: 메모리 기반의 key-value 구조 데이터 저장소로, 영속성을 지원하며 메모리 내 데이터 구조를 다양하게 지원합니다. 또한, 복제, 샤딩 등 분산 환경에서의 기능도 제공합니다.

 

Memcached: 분산 캐시 시스템으로, 메모리 기반의 key-value 저장소입니다. 많은 언어와 플랫폼에서 지원하며, 높은 읽기/쓰기 처리량과 낮은 지연 시간을 제공합니다.

 

Apache Ignite: 분상형 인메모리 데이터 그리드로, 메모리 기반의 데이터 저장과 분산 처리 기능을 제공합니다. 다양한 데이터 모뎅과 쿼리 기능을 제공하며, 대용량 데이터 처리와 분산 환경에서의 확장성이 뛰어납니다.

 

VoltDB: ACID를 보장하는 인메모리 데이터베이스로, 실시간 처리와 분산 환경에서의 확장성을 제공합니다. 다양한 언어와 플랫폼에서 지원되며, 높은 처리 속도와 빠른 응답 시간을 제공합니다.

 

H2 Database: 오픈 소스 인메모리 데이터베이스로, 경량화된 JDBC 드라이버와 브라우저 기반의 콘솔 등 다양한 기능을 제공합니다. SQL과 JDBC를 지원하며, 영속성을 위한 디스크 저장소도 제공합니다.

'🥸 CS 면접 스터디' 카테고리의 다른 글

ChatGPT로 공부하는 CS면접 준비 [Ch 1. 종류]  (0) 2023.04.25
에자일(Agile)이란?  (0) 2023.04.25
JSON(Java Script Object Notation)이란  (1) 2023.04.25
파이썬(Python)이란?  (0) 2023.04.25
PWA, Progressive Web App이란 무엇일까  (0) 2023.04.24
    '🥸 CS 면접 스터디' 카테고리의 다른 글
    • ChatGPT로 공부하는 CS면접 준비 [Ch 1. 종류]
    • 에자일(Agile)이란?
    • JSON(Java Script Object Notation)이란
    • 파이썬(Python)이란?
    개발자는신이야
    개발자는신이야
    첫발을 내디딘 초보 개발자입니다.

    티스토리툴바