【问题标题】:Google Cloud, which storage is better, key/value谷歌云,哪个存储更好,key/value
【发布时间】:2021-05-05 14:31:53
【问题描述】:

我需要存储(对于系统中的每个用户操作)一对字符串: TransId、DetailId 主要是我需要读取这个值,有时更新,最后删除。

数据应该在系统重启或其他维护后保持可用。

最简单的方法是使用 CloudSQL,但我正在考虑使用故障转移的 Memorystore(标准,非基本)。

Memorystore 适用于键值存储,但更适合缓存...(与 CloudSQL 相比可能更昂贵)

所以也许理想的选择是 CloudSQL,以防需要更好的性能(Memorystore 的额外缓存)。

你怎么看?

【问题讨论】:

  • 你考虑过firestore吗?它非常适合您的用例
  • 我不需要移动同步等(firebase 功能)。数据存储区 - 我考虑过这一点,但通常我的数据具有相同的格式(结构化),总是 2 个字段,在这种情况下,当我拥有完整的 ACID 时我感觉更好
  • Firestore 是一个有趣的解决方案,而且根据体积,可以免费。其他解决方案不是免费的。因此,您的用例的一个重要部分没有出现在描述中:您的延迟限制是什么? X 毫秒? XX 毫秒? XXX 毫秒?哪个卷(条目数和每个条目的大小)?最后想用这些存储的数据做什么?
  • 介于 X 和 XXms 之间。卷 - 数十万,也许是数百万条记录,每个字符串 ~ 20-30 个符号,最后 - 我们将从数据库中删除这些数据

标签: google-cloud-platform google-cloud-sql google-cloud-memorystore


【解决方案1】:

抛开价格不谈,您的用例更适合 Memorystore。从技术实现的角度来看,使用它进行开发可能会更容易。 (哪个 IMO 值得增加成本。)

SQL 解决方案的成本可能会更低,但会给管理带来一些麻烦。

如果您正在寻找便宜的解决方案,并且您正在从托管 VM 运行代码,我建议您使用 storing your key/values in the machine's metadata这是一种黑客/解决方法,不应在企业设置中使用。

【讨论】:

  • 所以总结你的答案,我们可以使用SQL和Memorystore,每种解决方案都有优点和缺点。在我的情况下,我不能使用机器元数据