본문으로 건너뛰기

KeyValueDatabase

1. Key Value Database

  • 키-값 저장소는 간단한 해시 테이블로, 주키(PK)를 통해서만 데이터베이스에 접글할 때 사용합니다.
  • 키-값 저장소는 API 관점에서 봤을 때 사용하기에 가장 단순한 NoSQL 데이터베이스입니다.
  • 클라이언트는 키에 대해 값을 얻거나, 값을 설정하거나, 삭제할 수 있습니다.
  • 데이터베이스는 값을 저장만 할 뿐 값의 내부를 알지도 못하고 신경 쓰지도 않습니다.
    • 뭐가 저장되었는지는 이해하는 것은 클라이언트의 몫입니다.
  • 항상 주키를 사용해 접근하여 일반적으로 성능과 확장성이 뛰어납니다.
  • 키-값 데이터베이스의 종류
    • Redis, Memcached, Riak, DynamoDB 등이 있습니다.

2. 키-값 저장소의 특징

2.1 일관성

  • 한 키에 대해 값을 얻거나 저장, 삭제하는 연산이 있으면 일관성은 한 키에 대한 연산에만 적용됩니다.

2.2 트랜잭션

2.3 조회 기능

  • 키-값 저장소는 키로 조회할 수 있고 그게 전부입니다.
  • 값 컬럼의 특정 속서ㅓㅇ을 사용해 조회해야 한다면 데이터베이스의 기능을 활용할 수 없고 애플리케이션에서 값을 읽어 해당 속성이 조건에 맞는지 확인해야 합니다.

3 데이터 구조

  • 키-값 저장소는 값 부분에 무엇이 저장되었는지 신경 쓰지 않습니다.
  • BLOB, 텍스트, JSON, XML 등 어떤 형태의 데이터든 저장할 수 있습니다.

4 확장성

  • 많은 키-값 저장소가 샤딩을 이용해 확장성을 확보합니다.
  • 샤딩을 하면 키 값에 따라 어느 노드에 키를 저장할지 결정합니다.
  • 이런식의 샤딩은 노드를 추가할수록 성능 향상이 가능합니다.

5 사용처

  • 저절한 사용처
    • 세션 정보 저장
    • 사용자 프로파일 설정
    • 장바구니 정보 저장
  • 사용하지 말아야 할 때
    • 데이터 간의 관계가 있는 경우
    • 다중 연산 트랜잭션을 사용하는 경우
    • 데이터로 조회하는 경우
    • 집합에 의한 연산