2 qq 32848715 qq_32848715 于 2016.04.12 11:27 提问

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

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

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

2个回答

CSDNXIAON
CSDNXIAON   2016.04.12 11:33

SQL大量数据查询的优化
SQL大量数据查询的优化
SQL大量数据查询的优化
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

xiaoyao880609
xiaoyao880609   2016.04.12 16:38

推荐使用redis用来缓存,对于你这种需求redis完全可以胜任,接口返回的类型是json你可以直接将json存入redis,如果你要封装javabean存入redis,需要序列化。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
python 爬取携程网飞机航班信息
昨天去面试 面试官给了一道题 让我抓取一个网站的信息 心想:就这么简单 小case嘛 然而打开携程网站 抓取了一下 结果没找到飞机航班信息 ….. 有重新打开 了携程的网站 一看 我擦 数据居然是异步加载的 这回有的玩了 打开控制台 查看信息 看到开始的时候 果然没有航班数据 看到
python 爬飞机航班信息
首先感谢一下 飞友网提供的网站数据 大神们有其他获取航班的渠道可以告诉我。我想要本地数据库使用。 功能: 爬所有航班信息保存到本地文件。保存格式参考12306的 下面还需要做的。 解析 中途经停的航班。和班次起飞日期(根据星期1234567计算)。 #coding:utf-8 __author__ = 'watsy' from sgmllib import SGMLPars
飞机票大数据分析,揭秘购票的秘密!
对于旅游或者探亲来说,买机票的一个最基本的问题是什么时候买能买到最便宜的机票?提前一个月还是一周?知乎上各种旅游攻略上各种“业内人士”也说提前一个月买可能买到最便宜的机票,有些又说提前2个星期买能买到最便宜的机票,事实真的如此么?为了解密机票的定价策略,本文作者做了一个长达一年多的数据收集,通过分析350亿机票价格数据,告诉你机票的各种秘密。01、到底要提前多久能买到最便宜的机票?要回答这个问题非
C++实现航班查询系统
简单的航班查询系统,c++,链表实现。适用于数据结构课程设计。
利用C#实现航班查询功能
利用C#完成航班机票信息查询,航班机票预定等功能。
航班实时查询系统 中航信数据库查询版
本系统查询结果完全和中航信数据同步。完全实时。保证准确无误。<br><br>说明:本查询系统包括 查询 预订 管理 三部份。可以查询国内。国际航班.包括单程,返程<br><br><br>系统特点:<br><br>1.不是传统的小偷查询。是真正访问中航信数据库。保证数据实时准确<br>2.机票预订功能。查询完成。可以直接预订。管理员后台查看管理<br>3.后台管理强大。可定制航空公司.航空城市.运价管理.常规航位.机型管理.星期表.会员管理.燃油附加等等。<br>极大提高了系统灵活性!<br>4.包括国内机票查询。国际机票查询。以及单程.返程查询<br><br><br>本版新加功能:<br><br>1.加入在线支付功能.支持10几家银行。支付更容易。支付完成实时冲值。<br>2.加入国内。国际航班高级查询。国内高级查询:fly_search.asp.国际高级查询:fly_search_ab.asp<br>3.方便为用户冲值。可在后台进行。入款。扣款操作<br><br><br>安装步骤<br>============================================<br><br>运行环境:IIS (虚拟主机,本地。独立服务器都可以) <br><br>1.把flight目录放到网站根目录下 确保http://localhost/flight 能正常访问<br>2.注意flight不能改名。否则将不能正常查询<br>3.确保访问地址是http://localhost/flight (查询结果只返回到http://localhost/flight/show.asp)<br><br>=============================================<br>4.后台登陆页面:system_manage/default.htm 管理初始用户:admin 密码:888888<br><br><br>5.后台机票接口基本参数设置的服务器地址,客户ID,MD5值。请不要随意更改。否则将不能正确查询<br><br>6.数据库目录clientdb/RCclientdb.mdb.为了系统的安全,可自行修改相关设置。<br><br>如果修改数据库路径及名字。请在conn.asp做相应该修改<br><br>top.asp 头文件请自行添加更改<br><br>bottom.asp 尾文件请自行添加更改<br><br>会员系统:在目录 order/register/ 链接即可 index.asp为注册会员,index.asp为登陆页面。<br>测试会员号:abc 密码:123
python 调用航空公司的接口 获取机票数据 api简单案例
首先简单说下接口测试,现在常用的2种接口就是http api和rpc协议的接口,今天主要说:http api接口是走http协议通过路径来区分调用的方法,请求报文格式都是key-value形式,返回报文一般是json串; 接口协议:http、webservice、rpc等。 请求方式:get、post方式 请求参数格式:   a. get请求都是通过url?param=xx
关于航班预订系统的流程
这是一个高级的航班预订系统,它实现了航班查询、修改、预退票及根据不同用户权限,登入到不同的界面等等
Python 爬取携程所有机票
打开携程网,查询机票,如广州到成都。这时网址为:http://flights.ctrip.com/booking/CAN-CTU-day-1.html?DDate1=2018-06-15其中,CAN 表示广州,CTU 表示成都,日期 “2018-06-15”就比较明显了。一般的爬虫,只有替换这几个值,就可以遍历了。但观察发现,有个链接可以看到当前网页的所有json格式的数据。如下http://fl...
航班机票查询系统在线实时查询订机票打折机票航班机票查询系统
航班机票查询系统  航班机票查询系统在线实时查询订机票打折机票航班机票查询系统在线实时查询订机票打折机票航班机票查询系统在线实时查询订机票打折机票航班机票查询系统