【问题标题】:Key Value Store for large list of integer values用于大型整数值列表的键值存储
【发布时间】:2016-08-30 18:45:02
【问题描述】:

我的应用程序需要一个键值存储。以下是有关键值的一些详细信息:

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

应用程序需要根据指定键快速访问整数列表。但是,此步骤在应用程序的工作中并不常见。

我需要为我的案例提供最佳键值存储的建议。我需要根据键快速检索值,值的大小可能约为 512 MB 或更多。

我检查了 Redis,但它要求将存储存储在内存中。但是,在给定的场景中,我认为我应该寻找基于磁盘的键值存储。

【问题讨论】:

  • 查看数据库排名:db-engines.com/en/ranking Redis 确实不错,可以有集群、复制和分片,redis 允许持久化,唯一的限制是你的数据必须适合内存跨度>

标签: dictionary cassandra redis key-value-store


【解决方案1】:

LevelDB 非常适合您的用例,因为您的密钥数量有限(假设您有足够的磁盘空间来满足您的要求),并且可能不需要分布式解决方案。

您需要指定的一件事是您是否(以及如何)希望在数据库中修改列表一次,因为 levelDB 和许多其他通用 key-val 存储没有此类原子事务。

如果您正在寻找分布式数据库,cassandra 很好,因为它还可以让您插入/删除单个列表元素。

【讨论】:

  • 我读到 LevelDB 可以存储一个 100 字节的值,但在我的例子中,一个键将有超过 10,000 个值(整数)。有什么方法可以让一个键支持这个数量的值?
  • afaik,leveldb 可以存储任意大的键和值(尽管出于实际原因它可能被限制为几 MB)。
猜你喜欢
  • 2013-01-31
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2018-12-16
  • 1970-01-01
相关资源
最近更新 更多