首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储静态数据的最佳策略: json文件与DB (mongo) vs redis

存储静态数据的最佳策略: json文件与DB (mongo) vs redis
EN

Software Engineering用户
提问于 2015-02-13 11:58:37
回答 1查看 9.3K关注 0票数 5

我目前正在设计一套与旅游业相关的网络服务。此服务之一需要输入机场代码和区域设置,并返回本地化的城市名称。

代码语言:javascript
运行
复制
fn(cityCode) => localizedCityName
fn(airportCode) => cityCode, localizedCityName, localizedAirportName

我目前在mongodb中有一个城市集合,其中包含了每个城市的本地化信息和机场列表:

代码语言:javascript
运行
复制
{cityCode:'lon',
  localized:{
            'en':{name:'london'},
            'fr':{name:'londres'}
            },
 airports:[{code:'GTW', name:'Gatwick'}]
  }

我想知道什么是最佳的性能和可扩展性,因为:

  • 关键格式是json (因此将数据从解决方案转移到另一个解决方案很容易)
  • 大约有200个城市,但每个城市都可以包含大量与我们的使用无关的数据)
  • 我们需要的数据很少或永远不会改变(盖特威克机场将永远在伦敦……)
  • 需要一次将少数几个城市本地化(20至100个)。
  • api只在一台服务器上(安装了redis ),但我们希望有一天能达到需要集群的程度。

我在考虑:

  1. 将数据保留在MongoDB中,根据需要进行查询,并使用索引进行优化。优点:数据一致性,查询的唯一来源。缺点:不表演
  2. 重新安排我的json,并将其存储到多个文件中,我的意思是重新安排一个以cityCode为关键的assoc json数组,airportCode用于其他文件的优点:优步更快的缺点:没有一致性,不是可伸缩的?
  3. 重新安排我的json并存储到同以前一样的redis,除了它在redis缓存中的优点:和以前一样,除了可扩展性更强,可能是缺点:需要读取和解析json (我看不到任何其他东西)。

NOw问题:

  1. 你还有什么其他的策略可以推荐吗?
  2. 我该选哪一个?为什么?
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2015-02-13 13:36:54

最具表现力的解决方案是内存中的,之后.YMMV例如,从文件中读取数据比从DB读取数据要慢。我不想说哪个更好,所以你必须测试它。

但是,如果redis正在缓存文件,那么这将更快(有效地在内存中!)所以我会这么做,但是自动化的一致性是值得拥有的。因此,我将根据数据库中的数据生成文件。如果您在启动(或重新加载应用程序)时这样做,您可以完全忽略该文件,除了在DB中更新和写入文件之间的延迟(我假设您将计划在一个已知的发布时间),您可以继续。显然,您可以向管理系统添加一个方法来强制重写,这可能更好。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/273127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档