2016-08-30 2 views
1

내 응용 프로그램에는 키 값 저장소가 필요합니다. 다음은 키 값과 관련된 세부 정보입니다.큰 값 목록의 정수 값

1) Number of keys (data type: string) can either be 256, 1024 or 4096. 
2) Data type of values against each key is a list of integers. 
3) The list of integers (value) against each key can vary in size 
4) The largest size of the value can be around 10,000,000 integers 
5) Some keys might contain very small list of integers 

응용 프로그램은 지정된 키에 대한 정수 목록에 빠르게 액세스해야합니다. 그러나이 단계는 응용 프로그램의 작업에서 빈번하지 않습니다.

필자의 경우 최상의 키 값 저장을위한 제안이 필요합니다. 키와 값의 크기에 대한 값을 빠르게 검색하려면 512MB 이상이 필요할 수 있습니다.

Redis를 확인했지만 저장소에 메모리가 저장되어 있어야합니다. 그러나 주어진 시나리오에서 디스크 기반 키 값 저장소를 찾아야한다고 생각합니다.

+1

여기서 데이터베이스 순위를 확인하십시오 : http://db-engines.com/en/ranking Redis는 실제로 좋은 것입니다. 클러스터링, 복제 및 샤딩을 할 수 있습니다. redis는 지속성을 허용하지만, 유일한 제한은 데이터가 있어야합니다. 메모리에 맞게 –

답변

0

LevelDB은 제한된 수의 키 (요구 사항에 충분한 디스크 공간이 있음)가 있으므로 유스 케이스에 매우 적합 할 수 있으며 분산 솔루션이 필요하지 않을 수 있습니다.

db에서 한 번만 목록을 수정하고 싶다면 (그리고 어떻게 할 것인가), 많은 다른 일반적인 키 - 발점 저장소에는 그러한 기본적인 트랜잭션이 없습니다.

분산 된 데이터베이스를 찾으려면 cassandra이 좋으며 개별 목록 요소를 삽입/제거 할 수도 있습니다.

+0

LevelDB는 100 바이트 값을 저장할 수 있지만 내 경우에는 키가 10,000 개가 넘는 정수 (정수)를 읽습니다. 단일 키에 대해 키가이 값의 수를 지원하는 방법이 있습니까? – Xara

+0

afaik, leveldb는 임의의 큰 키와 값을 저장할 수 있습니다 (실제로는 몇 MB로 제한 될 수 있음). –