如何缓存大量机票的数据,优化航班的查询

AaronCyua 发布于 2016/04/12 11:35
阅读 1K+
收藏 0

先说说应用的场景,要做一套机票查询和预定以及支付的系统。
连接第三方机票数据接口,
但是对方只提供了一种查询机票的方式:通过初始地和目的地,还有日期,
可以返回那天所有航班的信息 包括航班号,起飞和到达的时间,以及每种舱位(经济舱,头等舱等等n种舱位)的价格和折扣信息等等。
例如请求上海到北京在2016年7月1日的航班 会返回大概好多航班和各个舱位对应的价格。
数据结构比较复杂,大概三四层的json,一天的单程航班信息,整体的数据量大概在250KB,非常巨大。
对方接口访问速度非常慢 第一次需要20s左右,对方应该也做了缓存,之后大概半小时内,访问速度有5s左右,也十分的慢

为了提高我们机票系统的访问效率,需要做一套缓存系统,
要缓存这些数据,目标是缓存30天 1000个航班的数据,数据量大概要6个G。
还要顾虑刷新机票数据的时间间隔,既不能间隔太长(数据时效性要求较高),又不能间隔太短(担心写入速度不够快,而且对方接口是付费的)
本来顾虑使用mysql 但是刷新一次数据速度极慢,但是优点是数据结构比较容易处理,便于各种查询。
求解,还有什么别的好办法,既能相对快速的从外部接口拉下来数据进行数据读写,又便于各种查询(查询维度比较多,除了基本的初始城市到达城市和日期之外,还有例如航班号,航空公司等等等)
noSQL能做到什么地步?读写速度能不能达到要求呢?内存级别的缓存的话 6G数据量太大,而且多条件的查询,不知道如何处理了。。
望有相关经验的大神,提供一些思路,谢谢!

加载中
0
寻梦2012
寻梦2012
试试ES或者hbase
0
GinKo
GinKo
redis做中间件的数据缓存。定时抓取最新数据更新缓存。
返回顶部
顶部