签到类业务处理方法和装置制造方法

文档序号:6505305阅读:115来源:国知局
签到类业务处理方法和装置制造方法
【专利摘要】本发明提供了签到类业务处理方法和装置。其中,该方法包括:将用户当前签到时的签到数据存放至缓存设备,并将用户当前签到时的流水数据存放至内存;检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库;检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据,针对读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。采用本发明,能够提高签到数据的访问速度。
【专利说明】签到类业务处理方法和装置

【技术领域】
[0001]本申请涉及网络技术,特别涉及签到类业务处理方法和装置。

【背景技术】
[0002]首先,对本发明涉及的缩略语和关键术语进行定义:
[0003]事物,其是指抽象出来的信息,如用户、话题、消息等;
[0004]维度,其是指描述一个事物的角度,如性别、省份、城市、学校、车次、航班等;
[0005]维度组合,其是指多个维度的组合;
[0006]签到,其是指某个事物与一个或多个维度关联起来的行为;比如,男用户到A学校报道,其签到的数据为(A学校、男用户)。
[0007]签到业务,其是指收集用户的签到数据,按照不同的维度组合进行聚合,然后按照产品需求展示出来;比如,维度聚合为:(A学校、男用户)、(A学校、女用户)。
[0008]维度组合热点数据,其是指通过维度组合聚合起来的热点数据;
[0009]签到流水数据,其为截至到一段时间的签到数据,比如,截至到目前为止到A学校报道的同学名单。
[0010]以上对本发明涉及的缩略语和关键术语进行了定义。
[0011]如上述针对签到业务的定义,可以看出,签到业务的特点是更多的按照不同的维度组合读取签到数据。而通常,维度组合比较多,这样,按照维度组合聚合起来的签到数据也就相应比较多。如此,如何在众多个按照维度组合聚合起来的签到数据中提高签到数据的访问速度就成为当前亟待解决的技术问题。


【发明内容】

[0012]本申请提供了签到类业务处理方法和装置,以提高签到数据的访问速度。
[0013]本申请提供的技术方案包括:
[0014]一种签到类业务处理方法,包括:
[0015]将用户当前签到时的签到数据存放至缓存设备,并将用户当前签到时的流水数据存放至内存;
[0016]检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库;
[0017]检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据,针对读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。
[0018]一种签到类业务处理装置,包括:
[0019]存放处理模块,用于将用户当前签到时的签到数据存放至缓存设备,以及将用户当前签到时的流水数据存放至内存;
[0020]检测模块,用于检测设定的数据回写时间和设定的数据列表更新时间;
[0021]回写模块,用于在所述检测模块检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库;
[0022]读模块,用于在所述检测模块检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据;
[0023]更新模块,用于针对所述读模块读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。
[0024]由以上技术方案可以看出,本发明中,通过将签到数据实时存放至缓存设备,目的在于用户及其签到的数据之间,只需要简单的对应关系,不需要复杂的结构化数据来描述,并且,将签到数据存放至缓存设备,能够通过缓存的方式,实现在高并发的海量访问环境下快速读取用户的签到数据,极大减少后续数据访问的消耗,提升了服务性能。
[0025]进一步地,本发明先是将用户当前签到时的流水数据暂时存放至内存,等到设定的数据回写时间到达时,就将所述内存存放的流水数据回写至数据库,这能够避免海量用户并发访问的压力(有可能高达上百次/秒)会直接传导至数据库,压垮数据库。

【专利附图】

【附图说明】
[0026]图1为本发明实施例提供的方法流程图;
[0027]图2为本发明实施例提供的实施例流程图;
[0028]图3为本发明实施例提供的装置结构图。

【具体实施方式】
[0029]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0030]为了解决签到类业务处理时海量的流水数据、以及维度组合下数据列表的近实时更新,本发明提供了图1所示的方法。
[0031]参见图1,图1为本发明实施例提供的方法流程图。如图1所示,该流程可包括以下步骤:
[0032]步骤101,将用户当前签到时的签到数据存放至缓存设备,并将用户当前签到时的流水数据存放至内存。
[0033]作为本发明的一个实施例,本发明中提及的内存、缓存设备不同,内存可为执行本发明方法的主体比如服务器等服务进程自带的存储介质,其在服务进程重启时,该服务进程自带的内存中的数据会丢失,而缓存设备,独立于服务进程内存的存储介质,其不会随之服务进程的重启而丢失原来存放的数据。
[0034]作为本发明的一个实施例,本发明中,缓存设备可为开发公司自研的海量内存存储系统,比如Dcache。下面均以缓存设备为Dcache为例进行描述。
[0035]本发明中,用户的签到数据,是存储在DCache中的,该存储介质具有读写性能高、可存储海量数据、数据容灾能力强等优点,但数据结构化差、存储成本较高。基于此,为节省DCache存储成本,本发明尽可能避免DCache重复存储数据。基于此,本步骤101中,所述将用户当前签到时的签到数据存放至DCache可包括:
[0036]在所述DCache已存放该用户之前签到时的签到数据时,将用户当前签到时的签到数据覆盖掉所述DCache存放的该用户之前签到时的签到数据;
[0037]在所述DCache未存放该用户之前签到时的任何签到数据时,将用户当前签到时的签到数据写入至所述DCache存放。
[0038]通过以上步骤,能够尽可能避免DCache重复存储数据,节省DCache存储成本。
[0039]还有,本发明中,之所以将签到数据实时存放至DCache,目的在于用户及其签到的数据之间,只需要简单的对应关系,不需要复杂的结构化数据来描述,并且,将签到数据存放至DCache,能够通过缓存的方式,实现在高并发的海量访问环境下快速读取用户的签到数据,极大减少后续数据访问的消耗,提升了服务性能。
[0040]同样,本发明中,将用户当前签到时的流水数据暂时统一存放至内存,也是为了减少后续数据访问的消耗,这在下文进行了描述。
[0041]步骤102,检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库。
[0042]作为本发明的一个实施例,所述数据库具体实现时可为关系型的数据库,该关系型数据库具有容量大、容灾能力强、数据结构化存储、存储成本较低等优点,但读写性能有限。因此,为了避免海量用户并发访问的压力(有可能高达上百次/秒)会直接传导至数据库,压垮数据库,本发明先是将用户当前签到时的流水数据暂时存放至内存,等到设定的数据回写时间到达时,就将所述内存存放的流水数据回写至数据库。
[0043]优选地,本发明中,设定的数据回写时间可在尽可能避免海量用户并发访问的压力直接传导至数据库,压垮数据库的前提下依据实际情况设置,本发明并不具体限定。
[0044]需要说明的是,本发明中,为避免在进程重启、内存数据丢失的情况下,可从持久化存储中快速恢复数据,提供对外服务,本发明还需要定时将所述内存中存放的流水数据写入至持久化介质。其中,该写入方式可按照增加更新方式写入。
[0045]步骤103,检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据,针对读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。
[0046]本发明中,维度组合的数据列表,是从数据库中读取流水数据实现的。维度组合的数据列表长度是固定的,一般视业务场景而定,因此在维度组合数目确定的前提下,存储数据量的上限也是确定的。
[0047]还有,本发明中,维度组合的数据列表的更新依赖于设定的数据列表更新时间到达,这样做的理由,在于维度组合的数据列表并不需要被用户(除了一些例外情况)实时看至IJ,而是允许一定时间的滞后。
[0048]还有,本发明中,按照增量更新的方式从所述数据库中读取流水数据来更新维度组合的数据列表,在于流水数据的海量特点,所以选取增量更新的方式,而非全量更新。
[0049]需要说明的是,本发明中,为避免在进程重启、内存数据丢失的情况下,可从持久化存储中快速恢复数据,提供对外服务,本发明还需要定时将所述内存中存放的维度组合的数据列表写入至持久化介质。其中,该写入方式可按照增加更新方式写入。
[0050]至此,完成图1所示的流程。
[0051]基于图1所示流程,则用户需要访问某个维度组合的数据列表时,可执行图2所示流程。
[0052]参见图2,图2为本发明实施例提供的实例流程图。其中,该图2所示流程可应用于下述场景(记为场景I):用户在签到完成后需要立即看到自己的签到数据排在某一维度组合的数据列表中,也可应用于另一场景(记为场景2):用户因为需求直接读取某一维度组合的数据列表中,与用户什么时间完成的签到无关。
[0053]如图2所示,该流程可包括以下步骤:
[0054]步骤201,读取所述用户需要访问的维度组合的数据列表。
[0055]步骤202,从所述DCache中读取所述用户最近的签到数据。
[0056]步骤203,按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据。
[0057]需要说明的是,本发明中,为便于本步骤203中排列数据,上述步骤101中的签到数据、以及流水数据都需要被标识存放时间,这样,本步骤203中,就可以按照存放时间的前后顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据。
[0058]优选地,本发明中,如果所述数据列表中存在与读取的签到数据重复的部分数据,则步骤203中,所述按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据包括:
[0059]合并重复的数据,为合并后的数据分配一个存放时间;
[0060]按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及合并后的数据。
[0061]其中,上面描述中,为合并后的数据分配的存放时间可为当前合并的时间,也可为被合并的任一数据的存放时间,本发明并不具体限定。
[0062]以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
[0063]参见图3,图3为本发明实施例提供的装置结构图。如图3所示,该装置包括:
[0064]存放处理模块,用于将用户当前签到时的签到数据存放至缓存设备DCache,以及将用户当前签到时的流水数据存放至内存。
[0065]作为本发明的一个实施例,本发明中提及的内存、缓存设备不同,内存可为执行本发明方法的主体比如服务器等服务进程自带的存储介质,其在服务进程重启时,该服务进程自带的内存中的数据会丢失,而缓存设备,独立于服务进程内存的存储介质,其不会随之服务进程的重启而丢失原来存放的数据。
[0066]检测模块,用于检测设定的数据回写时间和设定的数据列表更新时间;
[0067]回写模块,用于在所述检测模块检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库;
[0068]读模块,用于在所述检测模块检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据;
[0069]更新模块,用于针对所述读模块读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。
[0070]作为本发明的一个实施例,所述存放处理模块在所述DCache已存放该用户之前签到时的签到数据时,将用户当前签到时的签到数据覆盖掉所述DCache存放的该用户之前签到时的签到数据;
[0071]在所述DCache未存放该用户之前签到时的任何签到数据时,将用户当前签到时的签到数据写入至所述DCache存放。
[0072]本发明中,如图3所示,该装置进一步包括:持久化模块。
[0073]其中,所述持久化模块,用于定时将所述内存中存放的流水数据写入至持久化介质;以及定时将所述内存中存放的维度组合的数据列表写入至持久化介质。
[0074]本发明中,所述读模块还进一步在用户需要访问某个维度组合的数据列表时,读取所述用户需要访问的维度组合的数据列表,以及从所述DCache中读取所述用户最近的签到数据,并按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据。
[0075]作为本发明的一个实施例,如果所述数据列表中存在与读取的签到数据重复的部分数据,则所述读模块按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据可包括:
[0076]合并重复的数据,为合并后的数据分配一个存放时间;
[0077]按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及合并后的数据。
[0078]至此,完成图3所示的装置结构描述。
[0079]由以上技术方案可以看出,本发明中,通过将签到数据实时存放至DCache,目的在于用户及其签到的数据之间,只需要简单的对应关系,不需要复杂的结构化数据来描述,并且,将签到数据存放至DCache,能够通过缓存的方式,实现在高并发的海量访问环境下快速读取用户的签到数据,极大减少后续数据访问的消耗,提升了服务性能。
[0080]进一步地,本发明先是将用户当前签到时的流水数据暂时存放至内存,等到设定的数据回写时间到达时,就将所述内存存放的流水数据回写至数据库,这能够避免海量用户并发访问的压力(有可能高达上百次/秒)会直接传导至数据库,压垮数据库。
[0081]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种签到类业务处理方法,其特征在于,该方法包括: 将用户当前签到时的签到数据存放至缓存设备,并将用户当前签到时的流水数据存放至内存; 检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库; 检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据,针对读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。
2.根据权利要求1所述的方法,其特征在于,所述将用户当前签到时的签到数据存放至缓存设备包括: 在所述缓存设备已存放该用户之前签到时的签到数据时,将用户当前签到时的签到数据覆盖掉所述缓存设备存放的该用户之前签到时的签到数据; 在所述缓存设备未存放该用户之前签到时的任何签到数据时,将用户当前签到时的签到数据写入至所述缓存设备存放。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 定时将所述内存中存放的流水数据写入至持久化介质。
4.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 定时将所述内存中存放的维度组合的数据列表写入至持久化介质。
5.根据权利要求1或4所述的方法,其特征在于,当用户需要访问某个维度组合的数据列表时,该方法进一步包括: 读取所述用户需要访问的维度组合的数据列表; 从所述缓存设备中读取所述用户最近的签到数据; 按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据。
6.根据权利要求5所述的方法,其特征在于,如果所述数据列表中存在与读取的签到数据重复的部分数据,则所述按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据包括: 合并重复的数据,为合并后的数据分配一个存放时间; 按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及合并后的数据。
7.一种签到类业务处理装置,其特征在于,该装置包括: 存放处理模块,用于将用户当前签到时的签到数据存放至缓存设备,以及将用户当前签到时的流水数据存放至内存; 检测模块,用于检测设定的数据回写时间和设定的数据列表更新时间; 回写模块,用于在所述检测模块检测到设定的数据回写时间到达时,回写所述内存存放的流水数据至数据库; 读模块,用于在所述检测模块检测到设定的数据列表更新时间到达时,按照增量更新的方式从所述数据库中读取流水数据; 更新模块,用于针对所述读模块读取的每一流水数据,识别当前所有维度组合的数据列表中是否存在该流水数据对应的维度组合的数据列表,如果是,将该流水数据添加至该存在的维度组合的数据列表,如果否,新建一个该流水数据对应的维度组合的数据列表,并将该流水数据添加至该新建的维度组合的数据列表。
8.根据权利要求7所述的装置,其特征在于,所述存放处理模块在所述缓存设备已存放该用户之前签到时的签到数据时,将用户当前签到时的签到数据覆盖掉所述缓存设备存放的该用户之前签到时的签到数据; 在所述缓存设备未存放该用户之前签到时的任何签到数据时,将用户当前签到时的签到数据写入至所述缓存设备存放。
9.根据权利要求7所述的装置,其特征在于,该装置进一步包括: 持久化模块,用于定时将所述内存中存放的流水数据写入至持久化介质;以及定时将所述内存中存放的维度组合的数据列表写入至持久化介质。
10.根据权利要求7或9所述的装置,其特征在于,所述读模块还进一步在用户需要访问某个维度组合的数据列表时,读取所述用户需要访问的维度组合的数据列表,以及从所述缓存设备中读取所述用户最近的签到数据,并按照数据的存放时间顺序依次排列读取的所述数据列表中的数据、以及读取的签到数据。
【文档编号】G06F17/30GK104281586SQ201310276250
【公开日】2015年1月14日 申请日期:2013年7月3日 优先权日:2013年7月3日
【发明者】霍一杰, 李鑫竺 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1