문제

CouchDB 및 Cassandra와 같은 키 가치 상점 주위에 머리를 감아려고합니다. 나는 그들이 왜 유용한 지 이해하지만 MySQL과 같은 RDBM을 대체하는 한 나는 그것을 얻지 못한다.

이것이 제가 저장해야 할 내용이라고 가정 해 봅시다.

{123456: {'model' : 'Ford'
          'color': 'blue'
          'MPG': 23}}

그런 다음 파란색 인 모든 자동차를 찾아야합니다.

키 값 저장소는 값을 사용하여 키를 어떻게 쿼리합니까? 나는 그 맵 레디스가 사용될 수있는 곳을 읽었지만 몇 가지 프로젝트의 출처를 살펴보면 예를 찾을 수 없습니다.

제가 올바른 질문을하면 알려주세요.

도움이 되었습니까?

해결책

기본적으로 키 값 저장소를 사용하는 경우 관계형 데이터베이스가 내부적으로 가지고있는 것과 동일한 구성 요소 중에 데이터베이스를 구축하는 것입니다. 이를 수행하는 이유는 스케일링 및 성능에 대한 더 많은 제어와 유연성을 갖거나 단지 간단 함을 갖기 때문입니다.

이 경우 테이블 행과 동등한 것을 두 개의 별도의 물건으로 저장해야합니다. 따라서 색상으로 색인을 원한다면 저장해야합니다.

{'blue': {123456}}

인덱스 테이블과 동일합니다.

물론 일부 키 가치 저장소는 귀하를위한 인덱싱 및 검색 메커니즘을 제공하므로 모든 것에 맞는 일반적인 규칙이 없습니다.

다른 팁

본질적으로 색인 인 별도의 키/가치 저장소를 유지하려고합니다. "파란색"을 키로 사용하고 파란색 인 "메인"자동차 상점의 모든 ID 목록이 있습니다.

예, 일반 RDBMS의 인덱스 기능을 복제합니다.

이것은 FriendFeed 팀 이이 문제에 어떻게 접근 하고이 솔루션에 이론적으로 이론적으로 해결했는지에 대한 좋은 기사입니다 (RDBMS를 키/가치 저장소로 사용했기 때문에 조금 이상합니다. :
http://bret.appspot.com/entry/how-friendfeed-uses-mysql

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top