为具有多个值的密钥建议数据库,具有高度可扩展性

KaK*_*aKa 5 key-value cassandra nosql redis riak

我们有key-multipleValues的数据.每个密钥可以有大约500个值(每个值大约为200-300个字符),这些密钥的数量将大约为1000万.主要操作是检查给定键的值.

我一直在使用mysql,我有两个选项:每个键值一行,每个键一行,文本字段中包含所有值.但这些对我来说似乎并不高效,因为第一个模型有很多行,冗余和第二个模型文本字段将变得非常大.

我正在考虑使用nosql数据库为此目的,我以前使用mongodb,我不认为它适合我目前的情况.基于keyvalue或基于列系列的nosql db会更好.它不需要分发.使用riak,redis,cassandra等的人分享你的想法.

谢谢

Nis*_*ant 2

从您的描述来看,某种键值存储似乎更适合您比较关系数据库。

数据本身看起来是非关系型的,为什么要存储在关系型存储中呢?使用像 Cassandra 这样的东西似乎是有效的。

我认为要存储的数据的典型数据结构是列族,其中键作为行键,列作为值。

MyDATA: (ColumnFamily)
  RowKey=>Key
    Column1=>val1
    Column2=>val2
    ...
    ...
    ColumnN=valN
Run Code Online (Sandbox Code Playgroud)

数据看起来像(JSON 表示法):

MyDATA (CF){
    [
      {key1:[{val1-1:'', timestamp}, {val1-2:'', timestamp}, .., {val1-500:'', timestamp}]},
      {key2:[{val2-1:'', timestamp}, {val2-2:'', timestamp}, .., {val2-500:'', timestamp}]},
      ...
      ...
    ]
}
Run Code Online (Sandbox Code Playgroud)

希望这有帮助。