【发布时间】:2015-04-28 03:37:27
【问题描述】:
我有一个包含 1000 行和大约 15 列的 CSV 文件。我计划将每一行存储为一个简单的 JSON 对象作为 Redis 值,并将 CSV 文件的行号存储为 Redis 键。但是,一旦我开始将多个 CSV 文件上传到 Redis,在数据库中区分一个 CSV 文件和另一个文件的最佳方法是什么? Redis 不只是所有键值,除了不同的 Redis 数据库实例本身之外没有其他更大的结构吗?我知道 Redis 在内存中,但即便如此......如果你有数百万条记录,去搜索所需的键是不是有点低效?我不明白。如果我上传了 100 万个 CSV 文件,每个文件有 1000 行,那将有 10 亿条记录需要搜索,这对于内存数据库来说也太多了。我应该换一种方式。
我正在寻找一种方法来以高效且合理的方式在 Redis 中表示我的每个 CSV 文件,其中每个 CSV 文件行都有自己的唯一键,而 Redis 值将是列标题和数据。
我该如何做到这一点?
一种解决方案是让每个键代表整个 CSV 文件,但我正在寻找是否有其他选择。
【问题讨论】:
-
Redis 中数据的最佳键是什么,实际上取决于您将如何使用数据以及数据的特征。您可以从使用 csv 中的唯一 ID 作为键开始。这篇文章openmymind.net/Data-Modeling-In-Redis会帮你有个大概的思路。
标签: node.js redis node-redis