CN106101256B - 用于同步数据的方法和装置 - Google Patents
用于同步数据的方法和装置 Download PDFInfo
- Publication number
- CN106101256B CN106101256B CN201610533595.6A CN201610533595A CN106101256B CN 106101256 B CN106101256 B CN 106101256B CN 201610533595 A CN201610533595 A CN 201610533595A CN 106101256 B CN106101256 B CN 106101256B
- Authority
- CN
- China
- Prior art keywords
- data
- time point
- database
- time
- full dose
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了用于同步数据的方法和装置。所述方法的一具体实施方式包括:接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。该实施方式实现了在高并发数据存储下快速同步数据。
Description
技术领域
本申请涉及计算机技术领域,具体涉及互联网技术领域,尤其涉及用于同步数据的方法和装置。
背景技术
目前,终端设备中的社交类应用的关系数据存储依赖队列服务,需要将数据先写入队列,然后延迟异步写入数据库或直接写入关系型数据库中。队列服务会导致数据延迟,并且技术逻辑复杂。直接写入关系型数据库的写入性能受到关系型数据库写入压力影响,无法做到高并发写入。
此外,终端设备中的社交类应用的关系数据更新时,客户端每次都要向服务器请求全量获取数据以完成更新,这样不仅接口请求速度慢且客户端耗费流量多,同时对服务端也会造成很大的压力。
发明内容
本申请的目的在于提出一种用于同步数据的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种用于同步数据的方法,所述方法包括:接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。
在一些实施例中,所述方法还包括:响应于确定超过预设的同步时间间隔,向所述客户端发送所述数据库中的全量数据。
在一些实施例中,所述向所述客户端发送所述数据库中的全量数据,包括:向所述客户端发送数据全量更新标识;接收所述客户端发送的全量数据获取请求,其中,所述全量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;根据所述上一次获取的数据在所述数据库中的更新时间点向所述客户端发送预设的批量数目条数据。
在一些实施例中,所述数据库是Redis数据库。
第二方面,本申请提供了一种用于数据同步的方法,所述方法包括:向服务器发送数据同步请求,其中,所述数据同步请求包括数据上次同步时间点;响应于收到的服务器发送的数据全量更新标识,向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据;记录接收所述全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
在一些实施例中,所述向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据,包括:响应于用户的数据更新操作向服务器发送批量数据获取请求,其中,所述批量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;接收所述服务器发送的预设的批量数目条数据并记录第预设的批量数目条数据在所述数据库中的更新时间点作为下一次发送批量数据获取请求时的上一次获取的数据在所述数据库中的更新时间点。
第三方面,本申请提供了一种用于同步数据的装置,所述装置包括:接收单元,配置用于接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;检测单元,配置用于确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;更新单元,配置用于响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。
在一些实施例中,所述装置还包括:超时单元,配置用于响应于确定超过预设的同步时间间隔,向所述客户端发送所述数据库中的全量数据。
在一些实施例中,所述更新单元进一步配置用于:向所述客户端发送数据全量更新标识;接收所述客户端发送的全量数据获取请求,其中,所述全量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;根据所述上一次获取的数据在所述数据库中的更新时间点向所述客户端发送预设的批量数目条数据。
在一些实施例中,所述数据库是Redis数据库。
第四方面,本申请提供了一种用于数据同步的装置,所述装置包括:请求单元,配置用于向服务器发送数据同步请求,其中,所述数据同步请求包括数据上次同步时间点;获取单元,配置用于响应于收到的服务器发送的数据全量更新标识,向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据并接收所述服务器发送的所述全量数据;记录单元,配置用于记录接收所述全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
在一些实施例中,所述请求单元进一步配置用于:响应于用户的数据更新操作向服务器发送批量数据获取请求,其中,所述批量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;接收所述服务器发送的预设的批量数目条数据并记录第预设的批量数目条数据在所述数据库中的更新时间点作为下一次发送批量数据获取请求时的上一次获取的数据在所述数据库中的更新时间点。
本申请提供的用于同步数据的方法和装置,通过客户端的上次同步时间点确定需要全量更新数据或增量更新数据,增量更新时无需逐条检测数据的更新时间只需要检测第预设数目条数据的更新时间点,从而简化了数据同步过程并提高了数据同步的速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的用于同步数据的方法的一个实施例的流程图;
图3是根据本申请的用于同步数据的方法的一个应用场景的示意图;
图4是根据本申请的用于同步数据的方法的又一个实施例的流程图;
图5是根据本申请的用于同步数据的装置的一个实施例的结构示意图;
图6是根据本申请的用于同步数据的装置的又一个实施例的结构示意图;
图7是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于数据同步的方法或用于数据同步的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种社交类客户端应用,例如即时通信工具、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持数据更新的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的好友列表提供支持的后台数据服务器。后台数据服务器可以对接收到的数据同步请求等数据进行分析等处理,并将处理结果(例如待更新的数据)反馈给终端设备。
需要说明的是,本申请实施例所提供的用于数据同步的方法一般由服务器105和终端设备101、102、103一起配合执行,服务器105负责发送待更新的数据,终端设备101、102、103负责接收待更新的数据。相应地,用于数据同步的装置一般分别设置于服务器105和终端设备101、102、103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于数据同步的方法的一个实施例的流程200。所述的用于数据同步的方法,包括以下步骤:
步骤201,接收客户端发送的数据同步请求。
在本实施例中,用于数据同步的方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行数据同步的终端接收数据同步请求,其中,上述数据同步请求包括上次数据同步时间点。如果客户端是第一次发送数据同步请求,则数据上次同步时间点为当前时间。例如,用户A的某个终端启动时,上传上次数据同步时间点,首次上传的上次数据同步时间点为本地当前时间。
步骤202,判断上次同步时间点与数据同步请求的时间间隔是否超过预设的同步时间间隔。
在本实施例中,确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔。例如,预设的同步时间间隔为3天,收到终端数据同步请求的时间为2016年6月28日,上次同步时间点为2016年6月24日则表明客户端中的数据长时间未进行全量更新,存在数据不一致风险。
步骤203,判断第预设数目条数据的更新时间点是否晚于上次同步时间点。
在本实施例中,响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序。例如,判断预先存储在预定的数据库中用户A的第100条日志数据的更新时间点是否晚于上次同步时间点。不需要从第1条开始逐条查找更新时间点晚于上次同步时间点的数据,节约了查找数据的时间。如果第100条数据的更新时间点晚于上次同步时间点,说明队列长度已经超过100,需要全量更新。
步骤204,向客户端发送全量数据。
在本实施例中,如果第预设数目条数据的更新时间点晚于数据上次同步时间点,则向客户端发送数据库中的全量数据。其中,上述全量数据是数据库中存储的用于与客户端同步的所有数据。
在本实施例的一些可选的实现方式中,向客户端发送全量数据包括:向客户端发送数据全量更新标识;接收客户端发送的全量数据获取请求,其中,全量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;根据上一次获取的数据的更新时间向所述客户端发送预设的批量数目条数据。例如,向客户端发送数据全量更新标识后,用户第一次以拉取客户端应用页面的方式请求数据时,向客户端发送第1条-第10条数据,客户端记录第10条数据在数据库中的更新时间点,用户下一次以拉取客户端应用页面的方式请求数据时发送了第10条数据在数据库中的更新时间点,服务器从第10条数据在数据库中的更新时间点开始又向客户端发送第11条-第20条数据,依次进行数据请求直到获取不到数据,则全量数据更新完毕。
在本实施例的一些可选的实现方式中,采用了Redis数据库存储数据。例如对于社交类应用,采用2种数据结构分别存储关注、粉丝、互相关注三种关系。关注、粉丝采用SortedSet(可排序集合),互相关注采用Set(集合)存储。关注、粉丝的SortedSet中Key(键)为Fo_{$uid}标识一个uid(用户身份标识)的关注列表存储,Fa_{$uid}标识一个uid的粉丝列表存储,Value(值)中sort(排序)为添加关注的微秒时间,member(成员)为粉丝或者关注的用户的uid。互相关注的Set结构中Key为Fr_{$uid}标识为一个uid的好友(双向关注)列表,Value中member为好友的uid。
对于关注/取消关注操作逻辑冗余写入双份实现关注、粉丝双列表。并行写入关注和粉丝列表,即假设A关注B。同时调用Zadd(Redis命令,用于添加所有指定的成员指定的分数存放在键的有序集合)将B添加到Fo_A列表中,将A添加到Fa_B列表中,查询Fo_B中是否有A,有则说明B曾经关注过A,则当前状态应该为互相关注的好友关系,所以同时调用Hset(Redis命令,用于为哈希表中的字段赋值)将A和B分别写入Fr_B和Fr_A两个列表中,实现互相关注列表冗余。
添加/取消关注时将对方uid存入修改日志列表中,使用Redis的SortedSet数据结构存储。即假如A关注B或者A取消关注B,则将B存入A的修改日志列表中,Value中member为B,sort为关注/取消关注的微秒时间,即数据更新时间。
用户A请求数据同步后,服务器向用户A所登录的客户端发送A的修改日志列表中的所有修改日志。
步骤205,向客户端发送第1条至第预设数目条数据。
在本实施例中,如果第预设数目条数据的更新时间点不晚于数据上次同步时间点,则向客户端发送第1条至第预设数目条数据。例如,如果预先存储在预定的数据库中用户A的第100条日志数据的更新时间点不晚于上次同步时间点,则向客户端发送第1条至第100条数据。不需要从第1条开始逐条查找更新时间点不晚于上次同步时间点的数据,因此节约了查找数据的时间。
继续参见图3,图3是根据本实施例的用于数据同步的方法的应用场景的一个示意图。在图3的应用场景中,用户A在一个客户端上登录某社交类应用后用户A在客户端的好友列表页面上向下拉取“下拉更新好友列表”框以发起一个同步好友列表的请求。之后,服务器判断出该客户端上一次同步好友列表已经是3天之前了,超出了预设的同步时间间隔2天,因此需要全量更新客户端A上的好友列表,此时服务器向客户端A发送好友列表全量更新标识,服务器下发了第1条-第7条好友数据,之后,用户再向下拉取“下拉更新好友列表”框时,服务器继续下发了第7条好友数据之前的第8条-第14条好友数据,以此方式分批获取好友数据直到获取完所有的好友数据。
本申请的上述实施例提供的方法通过根据客户端上次同步数据的时间判断是否需要全量更新数据或者增量更新数据,减少了同步数据的耗时。
进一步参考图4,其示出了用于数据同步的方法的又一个实施例的流程400。该用于数据同步的方法的流程400,包括以下步骤:
步骤401,向服务器发送数据同步请求。
在本实施例中,用于数据同步的方法运行于其上的电子设备(例如图1所示的终端)可以通过有线连接方式或者无线连接方式向服务器发送数据同步请求。其中,上述数据同步请求包括数据上次同步时间点。如果是第一次数据同步请求,则数据上次同步时间点为当前时间。
步骤402,响应于收到的服务器发送的数据全量更新标识,向服务器发送全量数据获取请求,并接收服务器发送的全量数据。
在本实施例中,当收到服务器发送的数据全量更新标识时,向服务器发送全量数据获取请求,并接收服务器发送的全量数据。服务器可以一次性发送全量数据或者将全量数据分批发送。客户端进行全量数据更新后,删除第预设数目条数据之前的数据。
在本实施例的一些可选的实现方式中,向服务器发送全量数据获取请求,并接收服务器发送的全量数据,包括:响应于用户的数据更新操作向服务器发送批量数据获取请求,其中,所述批量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;接收所述服务器发送的预设的批量数目条数据并记录第预设的批量数目条数据在所述数据库中的更新时间点作为下一次发送批量数据获取请求时的上一次获取的数据在所述数据库中的更新时间点。例如,客户端一次可以请求10条数据,记录第10条数据在数据库中的更新时间点,下一次再请求10条数据时上报第10条数据在数据库中的更新时间点,服务器将把第10条数据在数据库中的更新时间点之前的10条数据发送给客户端。
步骤403,记录接收全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
在本实施例中,客户端完成一次全量数据同步过程之后要记录接收全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。例如,待接收的全量数据有100条,分批接收,每次接收20条,直到接收到最后一条数据时才将当前时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于数据同步的方法的流程400突出了客户端操作的步骤。客户端与服务器密切配合实现了数据的快速同步。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于数据同步的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例所述的用于数据同步的装置500包括:接收单元501、检测单元502和更新单元503。其中,接收单元501配置用于接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;检测单元502配置用于确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;更新单元503配置用于响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。
在本实施例中,接收单元501接收到客户端发送的数据同步请求后,通过检测单元502判断采用全量数据更新还是增量数据更新方式,更新单元503选取待更新的数据发送给客户端。
在本实施例的一些可选的实现方式中,装置500还包括:超时单元,配置用于响应于确定超过预设的同步时间间隔,向所述客户端发送所述数据库中的全量数据。
在本实施例的一些可选的实现方式中,更新单元503进一步配置用于:向所述客户端发送数据全量更新标识;接收所述客户端发送的全量数据获取请求,其中,所述全量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;根据所述上一次获取的数据在所述数据库中的更新时间点向所述客户端发送预设的批量数目条数据。
在本实施例的一些可选的实现方式中,上述数据库是Redis数据库。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种用于数据同步的装置的又一个实施例,该装置实施例与图4所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例所述的用于数据同步的装置600包括:请求单元601、获取单元602和记录单元603。其中,请求单元601配置用于向服务器发送数据同步请求,其中,上述数据同步请求包括数据上次同步时间点;获取单元602配置用于响应于收到的服务器发送的数据全量更新标识,向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据;记录单元603配置用于记录接收所述全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
在本实施例中,请求单元601向服务器发送数据同步请求后,获取单元602获取了来自服务器的全量数据,然后通过记录单元603记录当前时间作为下一次数据同步请求包括的上次同步的时间点。
在本实施例的一些可选的实现方式中,请求单元601进一步配置用于:响应于用户的数据更新操作向服务器发送批量数据获取请求,其中,所述批量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;接收所述服务器发送的预设的批量数目条数据并记录第预设的批量数目条数据在所述数据库中的更新时间作为下一次发送批量数据获取请求时的上一次获取的数据在所述数据库中的更新时间点。
下面参考图7,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统700的结构示意图。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的
程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、检测单元和更新单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收客户端发送的数据同步请求的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。或者上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:向服务器发送数据同步请求,其中,所述数据同步请求包括数据上次同步时间点;响应于收到的服务器发送的数据全量更新标识,向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据;记录接收所述全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种用于同步数据的方法,其特征在于,所述方法包括:
接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;
确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;
响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。
2.根据权利要求1所述的用于同步数据的方法,其特征在于,所述方法还包括:
响应于确定超过预设的同步时间间隔,向所述客户端发送所述数据库中的全量数据。
3.根据权利要求1或2所述的用于同步数据的方法,其特征在于,所述向所述客户端发送所述数据库中的全量数据,包括:
向所述客户端发送数据全量更新标识;
接收所述客户端发送的全量数据获取请求,其中,所述全量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;
根据所述上一次获取的数据在所述数据库中的更新时间点向所述客户端发送预设的批量数目条数据。
4.根据权利要求1或2所述的用于同步数据的方法,其特征在于,所述数据库是Redis数据库。
5.一种用于同步数据的方法,其特征在于,所述方法包括:
向服务器发送数据同步请求,其中,所述数据同步请求包括数据上次同步时间点,所述服务器在确定出所述数据上次同步时间点与收到所述数据同步请求时的时间间隔未超过预设的同步时间间隔,且预先存储在预定的数据库中的第预设数目条数据的更新时间点晚于所述数据上次同步时间点时,发送数据全量更新标识;
响应于收到的服务器发送的数据全量更新标识,向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据;
记录接收所述全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
6.根据权利要求5所述的用于同步数据的方法,其特征在于,所述向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据,包括:
响应于用户的数据更新操作向服务器发送批量数据获取请求,其中,所述批量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;
接收所述服务器发送的预设的批量数目条数据并记录第预设的批量数目条数据在所述数据库中的更新时间点作为下一次发送批量数据获取请求时的上一次获取的数据在所述数据库中的更新时间点。
7.一种用于同步数据的装置,其特征在于,所述装置包括:
接收单元,配置用于接收客户端发送的数据同步请求,其中,所述数据同步请求包括上次数据同步时间点;
检测单元,配置用于确定所述数据上次同步时间点与收到所述数据同步请求时的时间间隔是否超过预设的同步时间间隔;
更新单元,配置用于响应于确定未超过预设的同步时间间隔,判断所述数据上次同步时间点与预先存储在预定的数据库中的第预设数目条数据的更新时间点之间的时间先后顺序,其中,所述数据库中的数据按更新时间由后到前的顺序从第1条开始排序;如果所述第预设数目条数据的更新时间点晚于所述数据上次同步时间点,则向所述客户端发送所述数据库中的全量数据;否则,向所述客户端发送所述数据库中第1条至第预设数目条数据。
8.根据权利要求7所述的用于同步数据的装置,其特征在于,所述装置还包括:
超时单元,配置用于响应于确定超过预设的同步时间间隔,向所述客户端发送所述数据库中的全量数据。
9.根据权利要求7或8所述的用于同步数据的装置,其特征在于,所述更新单元进一步配置用于:
向所述客户端发送数据全量更新标识;
接收所述客户端发送的全量数据获取请求,其中,所述全量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;
根据所述上一次获取的数据在所述数据库中的更新时间点向所述客户端发送预设的批量数目条数据。
10.根据权利要求7或8所述的用于同步数据的装置,其特征在于,所述数据库是Redis数据库。
11.一种用于同步数据的装置,其特征在于,所述装置包括:
请求单元,配置用于向服务器发送数据同步请求,其中,所述数据同步请求包括数据上次同步时间点,所述服务器在确定出所述数据上次同步时间点与收到所述数据同步请求时的时间间隔未超过预设的同步时间间隔,且预先存储在预定的数据库中的第预设数目条数据的更新时间点晚于所述数据上次同步时间点时,发送数据全量更新标识;
获取单元,配置用于响应于收到的服务器发送的数据全量更新标识,向所述服务器发送全量数据获取请求并接收所述服务器发送的所述全量数据并接收所述服务器发送的所述全量数据;
记录单元,配置用于记录接收所述全量数据的时间点作为下次发送的数据同步请求所包括的上次同步的时间点。
12.根据权利要求11所述的用于同步数据的装置,其特征在于,所述请求单元进一步配置用于:
响应于用户的数据更新操作向服务器发送批量数据获取请求,其中,所述批量数据获取请求包括上一次获取的数据在所述数据库中的更新时间点;
接收所述服务器发送的预设的批量数目条数据并记录第预设的批量数目条数据在所述数据库中的更新时间点作为下一次发送批量数据获取请求时的上一次获取的数据在所述数据库中的更新时间点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610533595.6A CN106101256B (zh) | 2016-07-07 | 2016-07-07 | 用于同步数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610533595.6A CN106101256B (zh) | 2016-07-07 | 2016-07-07 | 用于同步数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106101256A CN106101256A (zh) | 2016-11-09 |
CN106101256B true CN106101256B (zh) | 2019-10-08 |
Family
ID=57213085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610533595.6A Active CN106101256B (zh) | 2016-07-07 | 2016-07-07 | 用于同步数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106101256B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241693B (zh) * | 2016-12-26 | 2020-10-27 | 北京国双科技有限公司 | 同步数据的方法和装置 |
CN106913465A (zh) * | 2017-01-26 | 2017-07-04 | 杭州翼心信息科技有限公司 | 服药监测管理方法及装置 |
CN109116357B (zh) * | 2017-06-26 | 2020-12-11 | 百度在线网络技术(北京)有限公司 | 用于同步时间的方法、装置及服务器 |
CN107819870A (zh) * | 2017-11-21 | 2018-03-20 | 广州视睿电子科技有限公司 | 增量拉取数据方法、装置、存储介质、终端设备和服务器 |
CN108182258B (zh) * | 2018-01-02 | 2021-04-27 | 福建中金在线信息科技有限公司 | 分布式的数据分析系统及方法 |
CN109634971B (zh) * | 2018-11-07 | 2024-01-23 | 平安科技(深圳)有限公司 | 数据更新方法、装置、设备及计算机可读存储介质 |
CN113779153A (zh) * | 2021-09-15 | 2021-12-10 | 四川久远银海软件股份有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN115037729B (zh) * | 2022-04-21 | 2024-05-28 | 中国建设银行股份有限公司 | 数据汇聚方法、装置、电子设备及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127640A (zh) * | 2007-09-10 | 2008-02-20 | 中兴通讯股份有限公司 | 一种提高增量方式数据同步效率的方法 |
CN102820975A (zh) * | 2012-04-17 | 2012-12-12 | 国家广播电影电视总局广播科学研究院 | 数据更新方法、推送装置及终端 |
CN103179158A (zh) * | 2011-12-22 | 2013-06-26 | 中国银联股份有限公司 | 一种参数批量同步方法和系统 |
CN103678494A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN104133852A (zh) * | 2014-07-04 | 2014-11-05 | 小米科技有限责任公司 | 网页访问方法、装置、服务器及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580454A (zh) * | 2014-12-31 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 一种数据同步方法、装置及系统 |
-
2016
- 2016-07-07 CN CN201610533595.6A patent/CN106101256B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127640A (zh) * | 2007-09-10 | 2008-02-20 | 中兴通讯股份有限公司 | 一种提高增量方式数据同步效率的方法 |
CN103179158A (zh) * | 2011-12-22 | 2013-06-26 | 中国银联股份有限公司 | 一种参数批量同步方法和系统 |
CN102820975A (zh) * | 2012-04-17 | 2012-12-12 | 国家广播电影电视总局广播科学研究院 | 数据更新方法、推送装置及终端 |
CN103678494A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN104133852A (zh) * | 2014-07-04 | 2014-11-05 | 小米科技有限责任公司 | 网页访问方法、装置、服务器及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN106101256A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106101256B (zh) | 用于同步数据的方法和装置 | |
CN105205174B (zh) | 用于分布式系统的文件处理方法和装置 | |
CN106302445B (zh) | 用于处理请求的方法和装置 | |
EP1638018A2 (en) | Multistep master data cleansing in operative business process | |
CN109471695A (zh) | 用于更新数据的方法和装置 | |
CN105589631B (zh) | 信息展示方法和装置 | |
CN105138691B (zh) | 分析用户业务量的方法和系统 | |
CN110262807A (zh) | 集群创建进度日志采集系统、方法和装置 | |
CN111813685B (zh) | 自动化测试方法和装置 | |
CN109447635A (zh) | 用于区块链的信息存储方法和装置 | |
CN109472540B (zh) | 业务处理方法和装置 | |
CN109582873A (zh) | 用于推送信息的方法和装置 | |
CN111666201A (zh) | 回归测试方法、装置、介质及电子设备 | |
CN110019263A (zh) | 信息存储方法和装置 | |
CN106776638A (zh) | 数据库操作方法和装置 | |
CN110119386A (zh) | 数据处理方法、数据处理装置、介质和计算设备 | |
CN108011949A (zh) | 用于获取数据的方法和装置 | |
US7069292B2 (en) | Automatic display method and apparatus for update information, and medium storing program for the method | |
CN107844488A (zh) | 数据查询方法和装置 | |
CN109492200A (zh) | 协同文档还原方法、装置、存储介质及电子设备 | |
CN115357622A (zh) | 基于热点数据的业务处理方法及服务器 | |
CN108319542B (zh) | 信息处理方法、装置及系统 | |
CN111222067B (zh) | 信息生成方法和装置 | |
CN111008865A (zh) | 优惠券同步展示方法、装置、服务器及存储介质 | |
CN114020850A (zh) | 数据库数据同步方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |