我有可能为这项任务选择了错误的工具,如果您知道更好的工具,请随时提出建议。
任务:我需要存储键值对。
- 每对为 60 字节。键是 ID 和值 - 两者都是相当随机的或至少是非结构化的。
- 这样的对大约有 2 百万,总共产生大约 110 GB 的纯数据。未来有良好的成长机会。
- 写入负载较重,读取负载较轻。
- 如果能有 1K IOPS 的写入性能就好了,但也许这只是一个梦想,我将不得不选择速度较慢但不那么昂贵的东西。
- 我可以批量写入,但键不会是连续的(例如
123,7,13565
而不是1,2,3
) - 不需要花哨的搜索,只需给出完整键的值即可。
- 如果重要的话,我使用的是 AWS,但可以切换到一个非常好的解决方案。
- 成本很重要。
Redis 是一个键值存储,所以我想使用它,但是在内存中保留这么大的数据库成本太高,所以我想以一种将从内存中获取数据作为缓存的方式配置 Redis,并且当缓存未命中时 - 来自磁盘。
所以,这与Redis作为备份的持久性无关。
除了 Redis 我还尝试过:
- 目录树中的纯文件,例如
key='abcdef' => ab/cd/ef
. Ext2、BtrFS,尝试将写入分布到 16 个分区(约 0.5M 对后性能非常糟糕) - MySQL(悄然死去)
我还考虑过带有数据分层的 AWS Elasticache Redis,但最便宜的实例对我来说成本高昂(约 600 美元/月)
我怎样才能做到这一点?