CN106970974B - 一种基于版本的app低流量数据更新系统和方法 - Google Patents
一种基于版本的app低流量数据更新系统和方法 Download PDFInfo
- Publication number
- CN106970974B CN106970974B CN201710187958.XA CN201710187958A CN106970974B CN 106970974 B CN106970974 B CN 106970974B CN 201710187958 A CN201710187958 A CN 201710187958A CN 106970974 B CN106970974 B CN 106970974B
- Authority
- CN
- China
- Prior art keywords
- data
- version
- server
- latest
- app
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于版本的APP低流量数据更新系统和方法,涉及数据更新技术领域。该方法中,数据库采用A/B数据表+路由表的形式,通过记录增量数据并更新数据和数据版本,实现了无缝数据更新,当APP端请求数据时,服务端通过判断其携带版本号与最新版本号,将其中的增量信息和更新数据返回给APP端,而没有发生变动的非更新数据不会返回给APP端,所以,与现有技术中,需要数据全量更新,造成不必要的数据传输相比,本发明的方案,只对少量的发生变动的数据进行更新,而对大部分没有发生变动的数据不再进行更新,避免了大量的不必要数据的传输。
Description
技术领域
本发明涉及数据更新技术领域,尤其涉及一种基于版本的APP低流量数据更新系统和方法。
背景技术
目前,大部分APP都需要通过网络更新数据。数据的形式多种多样,目前主要的是通过JSON或者XML进行数据的传输。APP数据更新,一般采用如下的两种方式:一种是,每次更新全部数据,这种方式会造成很多不必要的数据的传输;另一种是,APP端每次去获取要更新数据,带上本地已有的数据版本号(APP端版本),服务器会将该版本号和最新的数据版本(服务器最新版本)进行比较,如果版本一致(即:APP端版本=服务器最新版本),则通知APP端不需要进行数据更新,否则,提供全量的数据更新。这种方式虽然较第一种方式有所改进,即在数据版本没有更新的时候(APP端版本=服务器最新版本),不进行数据更新,减少了不必要的数据传输,但是只要存在数据变更,存在版本变动,包括少量数据发生变动,也还是要提供全量的数据更新,从而对于未发生变动的大部分数据,还是造成了更新中需要进行的不必要的数据传输。
而在实际应用过程中,发现,APP中的数据,大部分时候,只有少量的数据会发生变动,大部分数据是不发生变动的。比如,某互联公司需要开发一款汽车降价特卖的APP,每款车的优惠时间有3天、5天、7天等,到期或者售罄自动下架。用户打开APP,首页是一个品牌到车系的两级的导航页,第一级是品牌,第二级是车系,点击车系会筛选出该车系下,所有正在进行特卖的车源信息。
随着时间的推移,若某一车系下所有的车源都下架或售空后,该车系节点应该从该导航页列表中删除,反之,若某车系的车有促销,并且列表中没有,则需要将该车系节点加到树上(若该车系所属品牌也没有在导航也列表中,则需要将该品牌节点也增加到该导航页中)。
这种数据的更新的频率不是很高,但是却要保证一定的实时性,避免新上架的车辆能及时的出现的导航页中,以便用户找到,或者某车系下所有车源都已经售空。而用户依然可以看到车系,导致用户点击该车系后,发现并没有正在售卖的车系,导致用户体验很差。
综上分析,可以看出,这种数据的更新频率不太高,每次更新的数据量也不大。
所以,采用现有技术的APP数据更新方式,会造成大量的不必要的数据网络传输。
发明内容
本发明的目的在于提供一种基于版本的APP低流量数据更新系统和方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于版本的APP低流量数据更新系统,包括:数据库、Push服务器、分布式缓存服务器和WEB服务器;
所述数据库包括数据表A、数据表B、路由表和变更记录表,所述路由表用于记录当前数据表和最新的更新时间,所述当前数据表为数据表A或数据表B,如果当前数据表为数据表A,则数据表B为空闲状态,反之,如果当前数据表为数据表B,则数据表A为空闲状态;所述数据表A和数据表B用于记录数据信息,所述变更记录表用于记录每次版本变动所增加和删除的数据;
所述Push服务器用于定时扫描数据,并将读取数据存储在空闲数据表中,还用于比较数据表A和数据表B,如果数据有变动,便将更新内容记录存入变更记录表中,并更新数据版本,然后切换路由表信息,使其指向新的数据表;还用于向所述分布式服务器中压入最新数据,并更新最新版本;
所述分布式缓存服务器用于存储最新版本和最新的规定数量的版本记录;
所述WEB服务器用于响应前端APP请求,并与所述分布式缓存服务器进行数据交互。
一种基于版本的APP低流量数据更新方法,包括Push服务更新数据的方法和APP请求数据的方法,所述Push服务更新数据的方法包括如下步骤:
Sa1,Push服务器读取数据,判断路由表中标识的当前数据表是否为数据表A,如果是,则将更新数据存储在数据表B中,否则,将更新数据存储在数据表A中;
Sa2,比较数据表A和数据表B中的数据,获取新增数据和被删除数据;
Sa3,将获取到的新增数据和被删除数据记录在表更记录表中,得到更新的变更记录表;
Sa4,将更新的最新数据压入分布式缓存服务器中,并更新版本,使缓存服务器中记录的最新版本数量不超过设定的数量;
Sa5,更新路由表;
所述APP请求数据的方法包括如下步骤:
Sb1,客户端携带本地数据版本号向WEB服务器请求数据;
Sb2,判断客户端的数据版本号是否为0,如果是0,则返回全量数据,否则,跳至Sb3;
Sb3,WEB服务器从分布式缓存服务器中获取最新数据版本号,并比较客户端所带版本号和服务端的最新版本号,若最新版本号-客户端所带版本号>缓存服务器中记录的版本数量,则返回全量数据;否则,返回客户端所带版本号到最新版本号之间所有的版本变更的增量信息;所述增量数据信息中包括新增数据和删除数据;
Sb4,客户端根据返回的数据更新本地数据。
优选地,Sa4中,所述缓存服务器中记录的最新版本数量不超过设定的数量,所述设定的数量为10个。
本发明的有益效果是:本发明实施例提供的一种基于版本的APP低流量数据更新系统和方法,数据库采用A/B数据表+路由表的形式,通过记录增量数据并更新数据和数据版本,实现了无缝数据更新,当APP端请求数据时,服务端通过判断其携带版本号与最新版本号,将其中的增量信息和更新数据返回给APP端,而没有发生变动的非更新数据不会返回给APP端,所以,与现有技术中,需要数据全量更新,造成不必要的数据传输相比,本发明的方案,只对少量的发生变动的数据进行更新,而对大部分没有发生变动的数据不再进行更新,避免了大量的不必要数据的传输。
附图说明
图1是数据增量更新系统结构示意图;
图2是Push服务更新数据流程示意图;
图3是APP请求数据流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
针对APP中大部分数据不发生变动,只有少量数据发生变动的实际情况,为了减少现有技术中数据全量更新过程中,造成的不必要的数据传输的问题,本发明提出了如下方案:只对少量的发生变动的数据进行更新,而对大部分没有发生变动的数据不再进行更新,从而,解决现有技术中存在的问题。
实施例一
如图1所示,本发明实施例提供了一种基于版本的APP低流量数据更新系统,包括:数据库、Push服务器、分布式缓存服务器和WEB服务器;
所述数据库包括数据表A、数据表B、路由表和变更记录表,所述路由表用于记录当前数据表和最新的更新时间,所述当前数据表为数据表A或数据表B,如果当前数据表为数据表A,则数据表B为空闲状态,反之,如果当前数据表为数据表B,则数据表A为空闲状态;所述数据表A和数据表B用于记录数据信息,所述变更记录表用于记录每次版本变动所增加和删除的数据;
所述Push服务器用于定时扫描数据,并将读取数据存储在空闲数据表中,还用于比较数据表A和数据表B,如果数据有变动,便将更新内容记录存入变更记录表中,并更新数据版本,然后切换路由表信息,使其指向新的数据表;还用于向所述分布式服务器中压入最新数据,并更新最新版本;
所述分布式缓存服务器用于存储最新版本和最新的规定数量的版本记录;
所述WEB服务器用于响应前端APP请求,并与所述分布式缓存服务器进行数据交互。
实施例二
本发明实施例提供了一种基于版本的APP低流量数据更新方法,包括Push服务更新数据的方法和APP请求数据的方法,所述Push服务更新数据的方法,如图2所示,包括如下步骤:
Sa1,Push服务器读取数据,判断路由表中标识的当前数据表是否为数据表A,如果是,则将更新数据存储在数据表B中,否则,将更新数据存储在数据表A中;
Sa2,比较数据表A和数据表B中的数据,获取新增数据和被删除数据;
Sa3,将获取到的新增数据和被删除数据记录在表更记录表中,得到更新的变更记录表;
Sa4,将更新的最新数据压入分布式缓存服务器中,并更新版本,使缓存服务器中记录的最新版本数量不超过设定的数量;
Sa5,更新路由表;
所述APP请求数据的方法,如图3所示,包括如下步骤:
Sb1,客户端携带本地数据版本号向WEB服务器请求数据;
Sb2,判断客户端的数据版本号是否为0,如果是0,则返回全量数据,否则,跳至Sb3;
Sb3,WEB服务器从分布式缓存服务器中获取最新数据版本号,并比较客户端所带版本号和服务端的最新版本号,若最新版本号-客户端所带版本号>缓存服务器中记录的版本数量,则返回全量数据;否则,返回客户端所带版本号到最新版本号之间所有的版本变更的增量信息;所述增量数据信息中包括新增数据和删除数据;
Sb4,客户端根据返回的数据更新本地数据。
其中,Sa4中,所述缓存服务器中记录的最新版本数量不超过设定的数量,所述设定的数量可以为10个。
本发明实施例中涉及到的概念解释如下:
版本:数据每次有更新(新增或者删除,另外本发明没有修改概念,每次修改可以变成一次删除和一次新增),则在原数据版本的基础上加1,数据的起始版本是1。
App端版本:App每次去服务器获取数据的时候,服务器会返回数据,和该数据的版本。App会将该数据版本存储在本地APP中,App第一次请求数据,数据版本可以携带为0。
服务器最新版本:数据每次更新后,会将最新的数据版本放在服务器端,该版本就是目前数据的最新版本。
新增数据和删除数据:每次数据更新,涉及到的数据变动。比如,数据为:1,2,3,4,数据版本为1,一段时间后,数据变成了1,3,4,5,6,则新增数据包括:5,6,删除数据包括:2,此次变动后,数据版本变成:2。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明实施例提供的一种基于版本的APP低流量数据更新系统和方法,数据库采用A/B数据表+路由表的形式,通过记录增量数据并更新数据和数据版本,实现了无缝数据更新,当APP端请求数据时,服务端通过判断其携带版本号与最新版本号,将其中的增量信息和更新数据返回给APP端,而没有发生变动的非更新数据不会返回给APP端,所以,与现有技术中,需要数据全量更新,造成不必要的数据传输相比,本发明的方案,只对少量的发生变动的数据进行更新,而对大部分没有发生变动的数据不再进行更新,避免了大量的不必要数据的传输。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域人员应该理解的是,上述实施例提供的方法步骤的时序可根据实际情况进行适应性调整,也可根据实际情况并发进行。
上述实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,例如:个人计算机、服务器、网络设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,例如:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (1)
1.一种基于版本的APP低流量数据更新系统,其特征在于,包括:数据库、Push服务器、分布式缓存服务器和WEB服务器;
所述数据库包括数据表A、数据表B、路由表和变更记录表,所述路由表用于记录当前数据表和最新的更新时间,所述当前数据表为数据表A或数据表B,如果当前数据表为数据表A,则数据表B为空闲状态,反之,如果当前数据表为数据表B,则数据表A为空闲状态;所述数据表A和数据表B用于记录数据信息,所述变更记录表用于记录每次版本变动所增加和删除的数据;
所述Push服务器用于定时扫描数据,并将读取数据存储在空闲数据表中,还用于比较数据表A和数据表B,如果数据有变动,便将更新内容记录存入变更记录表中,并更新数据版本,然后切换路由表信息,使其指向新的数据表;还用于向所述分布式服务器中压入最新数据,并更新最新版本;
所述分布式缓存服务器用于存储最新版本和最新的规定数量的版本记录;
所述WEB服务器用于响应前端APP请求,并与所述分布式缓存服务器进行数据交互;
所述数据更新系统用于实现基于版本的APP低流量数据更新方法,所述数据更新方法包括Push服务更新数据的方法和APP请求数据的方法,所述Push服务更新数据的方法包括如下步骤:
Sa1,Push服务器读取数据,判断路由表中标识的当前数据表是否为数据表A,如果是,则将更新数据存储在数据表B中,否则,将更新数据存储在数据表A中;
Sa2,比较数据表A和数据表B中的数据,获取新增数据和被删除数据;
Sa3,将获取到的新增数据和被删除数据记录在表更记录表中,得到更新的变更记录表;
Sa4,将更新的最新数据压入分布式缓存服务器中,并更新版本,使缓存服务器中记录的最新版本数量不超过设定的数量;
Sa5,更新路由表;
所述APP请求数据的方法包括如下步骤:
Sb1,客户端携带本地数据版本号向WEB服务器请求数据;
Sb2,判断客户端的数据版本号是否为0,如果是0,则返回全量数据,否则,跳至Sb3;
Sb3,WEB服务器从分布式缓存服务器中获取最新数据版本号,并比较客户端所带版本号和服务端的最新版本号,若最新版本号-客户端所带版本号>缓存服务器中记录的版本数量,则返回全量数据;否则,返回客户端所带版本号到最新版本号之间所有的版本变更的增量信息;所述增量数据信息中包括新增数据和删除数据;
Sb4,客户端根据返回的数据更新本地数据;
Sa4中,所述缓存服务器中记录的最新版本数量不超过设定的数量,所述设定的数量为10个;
版本:数据每次有更新,则在原数据版本的基础上加1,数据的起始版本是1;所述更新包括新增或删减;
App端版本:App每次去服务器获取数据的时候,服务器会返回数据,和该数据的版本;App会将该数据版本存储在本地APP中,App第一次请求数据,数据版本可以携带为0;
服务器最新版本:数据每次更新后,会将最新的数据版本放在服务器端,该版本就是目前数据的最新版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710187958.XA CN106970974B (zh) | 2017-03-27 | 2017-03-27 | 一种基于版本的app低流量数据更新系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710187958.XA CN106970974B (zh) | 2017-03-27 | 2017-03-27 | 一种基于版本的app低流量数据更新系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106970974A CN106970974A (zh) | 2017-07-21 |
CN106970974B true CN106970974B (zh) | 2020-10-30 |
Family
ID=59335424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710187958.XA Active CN106970974B (zh) | 2017-03-27 | 2017-03-27 | 一种基于版本的app低流量数据更新系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106970974B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844588B (zh) * | 2017-11-17 | 2020-07-14 | 中国银行股份有限公司 | 一种数据字典的处理方法、装置、存储介质及处理器 |
CN108108392B (zh) * | 2017-11-23 | 2020-07-24 | 北京百度网讯科技有限公司 | 商品数据管理方法、装置、计算机设备及存储介质 |
CN110019126A (zh) * | 2017-11-27 | 2019-07-16 | 航天信息股份有限公司 | 一种数据更新方法及装置 |
CN109445832A (zh) * | 2018-10-09 | 2019-03-08 | 深圳点猫科技有限公司 | 基于编程语言对应用程序进行热更新的方法以及电子设备 |
CN113542326B (zh) * | 2020-04-17 | 2023-04-25 | 上海际链网络科技有限公司 | 分布式系统的数据缓存方法及装置、服务器、存储介质 |
CN112818059B (zh) * | 2021-01-27 | 2024-05-17 | 百果园技术(新加坡)有限公司 | 一种基于容器发布平台的信息实时同步方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
CN105426403A (zh) * | 2015-10-30 | 2016-03-23 | 努比亚技术有限公司 | 书签同步方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182252A (zh) * | 2014-08-13 | 2014-12-03 | 墨仕(厦门)电子商务有限公司 | 一种app版本增量更新方法 |
US9934228B2 (en) * | 2014-09-05 | 2018-04-03 | International Business Machines Corporation | Index suspension prior to database update |
-
2017
- 2017-03-27 CN CN201710187958.XA patent/CN106970974B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701930A (zh) * | 2014-01-07 | 2014-04-02 | 浙江大学 | 一种移动应用程序的实时更新方法及系统 |
CN105426403A (zh) * | 2015-10-30 | 2016-03-23 | 努比亚技术有限公司 | 书签同步方法及装置 |
Non-Patent Citations (1)
Title |
---|
浅谈Android增量更新客户端的实现方法;匿名;《简书url:https://www.jianshu.com/p/441036c711f7》;20150608;第2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106970974A (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970974B (zh) | 一种基于版本的app低流量数据更新系统和方法 | |
CN110083650B (zh) | 一种基于元数据自发现的数据查询接口自动生成方法 | |
US20160328428A1 (en) | Updating A Search Index Using Reported Browser History Data | |
US8775556B1 (en) | Automated segmentation and processing of web site traffic data over a rolling window of time | |
CN110365747B (zh) | 网络请求的处理方法、装置、服务器及计算机可读存储介质 | |
CN106294597B (zh) | 用于对网页的静态资源进行分组的方法和装置 | |
EP2802979A2 (en) | Processing store visiting data | |
CN102193925A (zh) | 一种文稿系统中文稿在线多版本管理的方法和装置 | |
CN109634753B (zh) | 切换浏览器内核的数据处理方法、装置、终端和存储介质 | |
CN107295047B (zh) | 一种地图数据更新方法、装置及系统 | |
CN105187565A (zh) | 一种利用网络存储数据的方法 | |
CN103036948A (zh) | 网络文件处理方法、执行节点、软件即服务SaaS平台 | |
US9990378B2 (en) | Opportunistic clearing of sync states associated with a database | |
CN102819570A (zh) | 一种数据访问方法、装置及系统 | |
CN103812912B (zh) | 一种维护组织结构信息的方法及装置 | |
CN112861031B (zh) | Cdn中url刷新方法、装置、设备以及cdn节点 | |
CN109040311B (zh) | 服务信息的推送处理方法与装置 | |
CN109756780B (zh) | 一种视频处理的方法及装置 | |
CN105849704B (zh) | 缓存管理装置和缓存管理方法 | |
WO2016088237A1 (ja) | 配信方法、装置、及びプログラム | |
CN111182053A (zh) | 一种下载文件的方法、装置、计算机存储介质及终端 | |
CN112579633A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
CN101917418A (zh) | 通过无线应用协议访问云服务器的方法及wap服务器 | |
CN113821166A (zh) | 一种聚合多版本小对象的方法、装置及设备 | |
CN102024035A (zh) | 资源检索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |