最终将有两个数据库。一个用于缓存外部工具的API调用,另一个用于缓存应用程序的用户管理。但是,我们不确定最好使用什么。
使用云数据库进行缓存或用户管理通常是一个好主意吗?由于该应用程序将在Google Container Engine上运行,因此我们可能会使用Google Cloud Storage(用于缓存)和Firebase(用于用户管理)。还是我们应该使用Redis / ElasticSearch之类的东西(用于缓存),为不同的用户数据使用不同的东西?
#1 楼
我对Redis / ElasticSearch的了解不多,但是GCS并不是真正的类似于数据库的解决方案,它更接近于文件存储解决方案。如果您正在寻找类似数据库的存储Google Cloud提供:
Cloud SQL
Cloud Bigtable
Cloud Datastore
Cloud Spanner
如果您期望适当的应用流量或交替使用高/低流量,那么拥有Google App Engine应用程序而不是基于GCE的解决方案可能更具成本效益(且更简单)。
#2 楼
我们有类似的要求,因为需要在服务器中缓存一组数据以为应用程序提供服务(快速处理),而且到一天结束时,我们需要将数据从缓存服务器同步到原始服务器。从长远来看,我建议您使用Redis,因为您可以将Redis作为中间数据库(缓存),这将有助于您进行扩展。
您可以编写脚本以在一天中的某个时间间隔或一天的特定时间运行,以便您可以从源服务器(外部应用程序)拉/推数据。
您的要求完全不需要Elastic Search时间点,因为它可以帮助您基于缓存加速搜索结果,它只是一个搜索引擎。
评论
这是一个经过实践和验证的问题的现代版本:“我的代码很简单,为什么我不能仅将文件系统用作数据库?”