我目前正在设计一套与旅游业相关的网络服务。此服务之一需要输入机场代码和区域设置,并返回本地化的城市名称。
fn(cityCode) => localizedCityName
fn(airportCode) => cityCode, localizedCityName, localizedAirportName
我目前在mongodb中有一个城市集合,其中包含了每个城市的本地化信息和机场列表:
{cityCode:'lon',
localized:{
'en':{name:'london'},
'fr':{name:'londres'}
},
airports:[{code:'GTW', name:'Gatwick'}]
}
我想知道什么是最佳的性能和可扩展性,因为:
我在考虑:
NOw问题:
发布于 2015-02-13 13:36:54
最具表现力的解决方案是内存中的,之后.YMMV例如,从文件中读取数据比从DB读取数据要慢。我不想说哪个更好,所以你必须测试它。
但是,如果redis正在缓存文件,那么这将更快(有效地在内存中!)所以我会这么做,但是自动化的一致性是值得拥有的。因此,我将根据数据库中的数据生成文件。如果您在启动(或重新加载应用程序)时这样做,您可以完全忽略该文件,除了在DB中更新和写入文件之间的延迟(我假设您将计划在一个已知的发布时间),您可以继续。显然,您可以向管理系统添加一个方法来强制重写,这可能更好。
https://softwareengineering.stackexchange.com/questions/273127
复制相似问题