存储非常大的数据列表

Storing very large list of data

我需要存储一个非常大的列表(大小高达 80MB),我可以将数据分块并将其存储在多个键上 - A_1、A_2 ... 等等。该解决方案看起来远非优雅 - 并且还伴随着必须维护查找字典 {'A': [1, 2, ....]} 以了解阅读时特定文档存在多少块的开销它回来了。

有没有其他方法可以在 Redis 或 Aerospike 中做同样的事情?我并不是一心想使用 Redis,任何其他存储(关系存储除外)都可以。

根据您的输入,redis 列表将适合。您可以对其进行简单的基准测试。通过列表,我假设您将访问某个范围内的数据。

使用 lpush 推送所有数据,http://redis.io/commands/lpush

使用 lrange 检索数据块,http://redis.io/commands/lrange

给你一个想法,粗略地说,你的名单规模是 10,000。放入 80MB 数据所需的时间大约需要 1 秒。检索大约 500 个数据块(在一个范围内)的时间大约需要 200 毫秒。这可能会因您的输入、RTT 等而异。