本发明涉及互联网技术领域,特别是涉及一种数据统计方法、装置、服务器及存储介质。
背景技术:
目前,随着互联网技术的发展,用户所观看的网页上多会涉及到广告。其中,当网页上的广告被点击实现页面跳转,或广告所在的网页的被刷新,均认为广告被访问。而广告数据统计主要是指广告访问量的统计,具体的,广告访问量包括广告点击量和广告展示量,点击网页上的广告实现页面跳转的次数即为广告点击量,广告所在的网页的刷新次数即为广告展示量。
现有技术中,广告访问量的统计方法为:针对任一广告,当该广告被访问时,服务器确定该广告对应的当前访问量,然后查找数据库中该广告对应的第一访问量,即本次访问之前该广告对应的历史访问量,之后将查找到的第一访问量和当前访问量进行累加求和,并将求和获得的数值作为该广告对应的第二访问量,该第二访问量即为该广告对应的总访问量。其中,数据库用于存储有广告与历史访问量的对应关系。
每当广告被访问时,都需要对数据库进行访问并对访问量进行统计,数据库的访问次数较多,服务器压力较大。
技术实现要素:
本发明实施例的目的在于提供一种数据统计方法、装置、服务器及存储介质,以减少数据库的访问次数,降低服务器压力。具体技术方案如下:
一种数据统计方法,应用于服务器,所述方法包括:
当目标广告被访问时,将所述目标广告对应的当前访问量存储到预设缓存中;
当符合预定统计条件时,统计所述预设缓存中所存储的所述目标广告对应的当前访问量,将统计结果确定为所述目标广告对应的当前总访问量;
从数据库中读取所述目标广告对应的历史访问量;
将所述历史访问量和所述当前总访问量求和,将求和结果确定为所述目标广告对应的总访问量。
可选地,所述方法还包括:
将所述数据库中所述目标广告对应的历史访问量替换为所述目标广告对应的总访问量。
可选地,所述预设缓存为:memcached高速缓存系统。
可选地,所述当符合预定统计条件时,统计所述预设缓存中所存储的所述目标广告对应的当前访问量,将统计结果确定为所述目标广告对应的当前总访问量,包括:
当符合预定统计条件时,对所述预设缓存中所存储的所述目标广告对应的当前访问量进行求和,将求和结果确定为所述目标广告对应的当前总访问量。
可选地,所述方法还包括:
接收客户端发送的针对所述目标广告的查看指令;
查找所述数据库中所述目标广告对应的历史访问量,并发送给客户端,以使所述客户端将所述目标广告的历史访问量进行展示。
可选地,所述预定统计条件为:预定时间点,或者,获得统计指令。
可选地,所述统计所述预设缓存中所存储的所述目标广告对应的当前访问量之后,所述方法还包括:
将所述预设缓存中所存储的所述目标广告对应的当前访问量标记为已统计;
或者,
将所述预设缓存中的所存储的所述目标广告对应的当前访问量删除。
本发明实施例还提供了一种数据统计装置,应用于服务器,所述装置包括:
存储模块,用于当目标广告被访问时,将所述目标广告对应的当前访问量存储到预设缓存中;
统计模块,用于当符合预定统计条件时,统计所述预设缓存中所存储的所述目标广告对应的当前访问量,将统计结果确定为所述目标广告对应的当前总访问量;
读取模块,用于从数据库中读取所述目标广告对应的历史访问量;
求和模块,用于将所述历史访问量和所述当前总访问量求和,将求和结果确定为所述目标广告对应的总访问量。
本发明实施例还提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现本发明实施例所提供的数据统计方法。
本发明实施例还提供了一种存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的数据统计方法。
与现有技术相比,应用本发明实施例所提供的方案,当广告被访问时,将广告对应的当前访问量存储到预设缓存中,并当符合预定统计条件时基于该广告的当前访问量和该广告的历史访问量确定总访问量。无需每当广告被访问就对数据库进行访问以及对访问量进行统计,可以减少数据库的访问次数,降低服务器压力。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种数据统计方法的流程图;
图2为本发明实施例所提供的一种数据统计装置的结构示意图;
图3为本发明实施例所提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,为便于描述,本发明实施例中将被访问的广告命名为目标广告。也就是说,本发明实施例所提及的目标广告中的“目标”仅仅用于从命名上与其他广告区分,并不具有任何限定意义。
另外,本发明实施例所提供的一种数据统计方法应用于服务器,具体的,实现本发明实施例所提供的一种数据统计方法的功能软件可以为专门的广告访问量统计软件,也可以为现有软件中的插件,这都是合理的。
图1为本发明实施例所提供的一种数据统计方法的流程图,如图1所示,该方法包括以下步骤:
s110,当目标广告被访问时,将所述目标广告对应的当前访问量存储到预设缓存中。
当网页上的广告被点击实现页面跳转,或广告所在的网页的被刷新,均认为广告被访问。为便于对访问广告和非访问广告进行区别,本实施例中,将被访问的广告定义为目标广告。当目标广告被访问时,服务器将目标广告对应的当前访问量存储到预设缓存中。
可以理解,当目标广告被访问时,服务器会确定目标广告对应的当前访问量,并将确定的目标广告对应的当前访问量存储到预设缓存中。
需要说明的是,服务器可以与一台客户端通信,也可以与多台客户端通信。
当服务器与一台客户端通信时,目标广告只能被该唯一客户端访问,则当目标广告被访问时,服务器确定目标广告对应的当前访问量为1,并将目标广告的当前访问量1存储到预设缓存中。
当服务器与多台客户端通信时,目标广告可能同时被多台客户端访问,则当目标广告被访问时,服务器根据访问目标广告的客户端的数量确定目标广告对应的当前访问量,并将目标广告的当前访问量存储到预设缓存中。例如,假设目标广告同时被3台客户端访问,则此时服务器可以确定目标广告对应的当前访问量为3,并将目标广告的当前访问量3存储到预设缓存中。
具体地,本实施例中的预设缓存可以为:memcached高速缓存系统。memcached高速缓存系统可以看作是高性能的分布式内存缓存服务器。通过将目标广告的当前访问量存储到预设缓存中,可以减少数据库访问次数,进而可以提高动态web应用的速度、提高可扩展性。
s120,当符合预定统计条件时,统计所述预设缓存中所存储的所述目标广告对应的当前访问量,将统计结果确定为所述目标广告对应的当前总访问量。
具体地,本实施例中的预定统计条件可以为:预定时间点,或者,获得统计指令,当然并不局限于此。
可以理解,当达到预定时间点,或者获得统计指令时,服务器统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量。
更为具体地,预定时间点可以为周期设定的时间点。例如,可以每隔三分钟对预设缓存中所存储的目标广告对应的当前访问量进行统计;或者,每隔十分钟对预设缓存中所存储的目标广告对应的当前访问量进行统计。
预定时间点也可以为非周期设定的时间点,例如,以三分钟和五分钟间隔对预设缓存中所存储的目标广告对应的当前访问量进行统计。具体地,在距离上次统计之后隔三分钟对预设缓存中所存储的目标广告对应的当前访问量进行统计,然后再隔五分钟对预设缓存中所存储的目标广告对应的当前访问量进行统计,然后再隔三分钟对预设缓存中所存储的目标广告对应的当前访问量进行统计,以此循环。
可选地,当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量的过程,可以具体为:
当符合预定统计条件时,对预设缓存中所存储的目标广告对应的当前访问量进行求和,将求和结果确定为目标广告对应的当前总访问量。
例如,假设当符合预定统计条件时,预设缓存中所存储的目标广告对应的当前访问量有2、1、4、5,则服务器会对目标广告对应的所有的当前访问量进行求和,即计算2+1+4+5=12,并将求和结果12确定为目标广告对应的当前总访问量。
可选地,在执行统计预设缓存中所存储的目标广告对应的当前访问量的步骤之后,该方法还可以包括:
将预设缓存中所存储的目标广告对应的当前访问量标记为已统计。
可以理解的是,预设缓存中目标广告对应的当前访问量可以具有预定生命时长,而服务器可以删除达到所对应预定生命时长的当前访问量,从而保证预设缓存存储的当前访问量的时效性。
具体地,当前访问量是预定生命时长可能大于预定统计条件的时长,即,对预设缓存中所存储的目标广告对应的当前访问量后,当再一次符合预定统计条件时,上一次统计后的目标广告对应当前访问量还未达到所对应的预定生命时长。此时,服务器无法区分哪些是上一次已经统计过的当前访问量,哪些是这次要统计的当前访问量。
为了解决这一问题,服务器在执行统计预设缓存中所存储的目标广告对应的当前访问量的步骤之后,将预设缓存中所存储的目标广告对应的当前访问量标记为已统计。当再一次符合预定统计条件时,服务器对未被标记的当前访问量进行统计。也就是说,基于统计后标记的思想,统计所述预设缓存中所存储的所述目标广告对应的当前访问量的具体统计方式为:统计未被标记的当前访问量。
或者,可选地,在执行统计预设缓存中所存储的目标广告对应的当前访问量的步骤之后,该方法还可以包括:
将预设缓存中的所存储的目标广告对应的当前访问量删除。即,当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量,并将预设缓存中的所存储的目标广告对应的当前访问量删除。当再一次符合预定统计条件时,服务器依旧直接统计预设缓存中所存储的目标广告对应的当前访问量,并执行后续步骤。
通过在对预设缓存中所存储的目标广告对应的当前访问量进行统计后,将预设缓存中的所存储的目标广告对应的当前访问量删除,便于在下一次需要对预设缓存中所存储的目标广告对应的当前访问量进行统计时,直接对预设缓存中所存储的目标广告对应的当前访问量进行统计,而无需识别哪些是已统计过的,哪些是未统计的,可以提高统计效率。
s130,从数据库中读取所述目标广告对应的历史访问量。
确定出目标广告对应的当前总访问量后,服务器从数据库中读取目标广告对应的历史访问量。
具体地,数据库中存储有广告与历史访问量之间的对应关系,例如,假设广告1对应的历史访问量为12,广告2对应的历史访问量为10,广告3对应的历史访问量为20,则在数据库中存储的形式可以如表1所示:
s140,将所述历史访问量和所述当前总访问量求和,将求和结果确定为所述目标广告对应的总访问量。
例如,假设数据库中存储的目标广告对应的历史访问量为20,s120中确定的目标广告对应的当前总访问量为3,则服务器将23=20+3确定为目标广告对应的总访问量。
应用本实施例,当广告被访问时,将广告对应的当前访问量存储到预设缓存中,并当符合预定统计条件时基于该广告的当前访问量和该广告的历史访问量确定总访问量。无需每当广告被访问就对数据库进行访问以及对访问量进行统计,可以减少数据库的访问次数,降低服务器压力。
进一步地,作为本实施例的一种可选方案,在确定出目标广告对应的总访问量后,该方法还可以包括:
将数据库中目标广告对应的历史访问量替换为目标广告对应的总访问量。
例如,假设步骤s140确定的目标广告对应的总访问量为23,数据库中存储的目标广告对应的历史访问量为20,则服务器会将数据库中目标广告对应的历史访问量20替换为23。可以理解,当目标广告再次被访问时,服务器从数据库中读取的目标广告对应的历史访问量将为23。
进一步地,作为本实施例的再一种可选方案,该方法还可以包括:
接收客户端发送的针对目标广告的查看指令;
查找所述数据库中目标广告对应的历史访问量,并发送给客户端,以使所述客户端将目标广告的历史访问量进行展示。
具体地,当用户想要查看目标广告对应的历史访问量时,可以通过点击客户端按钮或者在客户端输入指令的方式,向服务器发送针对目标广告的查看指令。服务器接收到该查看指令后,查找数据库中目标广告对应的历史访问量,并将查找到是历史访问量发送给客户端,以使客户端将目标广告的历史访问量展示给用户。
相应于上述方法实施例,本发明实施例还提供了一种数据统计装置,该装置应用于服务器,如图2所示,该装置包括:
存储模块210,用于当目标广告被访问时,将目标广告对应的当前访问量存储到预设缓存中。
统计模块220,用于当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量。
读取模块230,用于从数据库中读取目标广告对应的历史访问量。
求和模块240,用于将历史访问量和当前总访问量求和,将求和结果确定为目标广告对应的总访问量。
应用本实施例,当广告被访问时,将广告对应的当前访问量存储到预设缓存中,并当符合预定统计条件时基于该广告的当前访问量和该广告的历史访问量确定总访问量。无需每当广告被访问就对数据库进行访问以及对访问量进行统计,可以减少数据库的访问次数,降低服务器压力。
具体地,该装置方法还包括:
替换模块(图2中未示出),用于将数据库中目标广告对应的历史访问量替换为目标广告对应的总访问量。
可选地,本实施例中的预设缓存可以为:memcached高速缓存系统。
具体地,统计模块220具体用于:
当符合预定统计条件时,对预设缓存中所存储的目标广告对应的当前访问量进行求和,将求和结果确定为目标广告对应的当前总访问量。
具体地,该装置方法还包括:
接收模块(图2中未示出),用于接收客户端发送的针对目标广告的查看指令。
查找模块(图2中未示出),用于查找数据库中目标广告对应的历史访问量,并发送给客户端,以使客户端将目标广告的历史访问量进行展示。
优选地,本实施例中的预定统计条件为:预定时间点,或者,获得统计指令。
具体地,统计模块220具体用于:
统计预设缓存中所存储的目标广告对应的当前访问量之后,将预设缓存中所存储的目标广告对应的当前访问量标记为已统计。
或者,统计模块220具体用于:统计预设缓存中所存储的目标广告对应的当前访问量之后,将预设缓存中的所存储的目标广告对应的当前访问量删除。
相应于上述方法实施例,本发明实施例还提供了一种服务器,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现一种数据统计方法的步骤,具体的,一种数据统计方法包括如下步骤:
当目标广告被访问时,将目标广告对应的当前访问量存储到预设缓存中;
当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量;
从数据库中读取目标广告对应的历史访问量;
将历史访问量和当前总访问量求和,将求和结果确定为目标广告对应的总访问量。
上述服务器提到的通信总线可以是外设部件互连标准(peripheralpomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,所述数据统计方法还包括:
将数据库中所述目标广告对应的历史访问量替换为目标广告对应的总访问量。
可选地,预设缓存为:memcached高速缓存系统。
可选地,当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量,包括:
当符合预定统计条件时,对预设缓存中所存储的目标广告对应的当前访问量进行求和,将求和结果确定为目标广告对应的当前总访问量。
可选地,所述数据统计方法还包括:
接收客户端发送的针对目标广告的查看指令;
查找所述数据库中目标广告对应的历史访问量,并发送给客户端,以使客户端将目标广告的历史访问量进行展示。
可选地,预定统计条件为:预定时间点,或者,获得统计指令。
可选地,统计所述预设缓存中所存储的所述目标广告对应的当前访问量之后,所述方法还包括:
将预设缓存中所存储的目标广告对应的当前访问量标记为已统计;
或者,
将预设缓存中的所存储的目标广告对应的当前访问量删除。
应用本实施例,当广告被访问时,将广告对应的当前访问量存储到预设缓存中,并当符合预定统计条件时基于该广告的当前访问量和该广告的历史访问量确定总访问量。无需每当广告被访问就对数据库进行访问以及对访问量进行统计,可以减少数据库的访问次数,降低服务器压力。
本发明实施例还提供了一种存储介质,存储介质内存储有计算机程序,计算机程序被处理器执行时实现一种数据统计方法的步骤,具体的,一种数据统计方法包括如下步骤:
当目标广告被访问时,将目标广告对应的当前访问量存储到预设缓存中;
当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量;
从数据库中读取目标广告对应的历史访问量;
将历史访问量和当前总访问量求和,将求和结果确定为目标广告对应的总访问量。
可选地,所述数据统计方法还包括:
将数据库中所述目标广告对应的历史访问量替换为目标广告对应的总访问量。
可选地,预设缓存为:memcached高速缓存系统。
可选地,当符合预定统计条件时,统计预设缓存中所存储的目标广告对应的当前访问量,将统计结果确定为目标广告对应的当前总访问量,包括:
当符合预定统计条件时,对预设缓存中所存储的目标广告对应的当前访问量进行求和,将求和结果确定为目标广告对应的当前总访问量。
可选地,所述数据统计方法还包括:
接收客户端发送的针对目标广告的查看指令;
查找所述数据库中目标广告对应的历史访问量,并发送给客户端,以使客户端将目标广告的历史访问量进行展示。
可选地,预定统计条件为:预定时间点,或者,获得统计指令。
可选地,统计所述预设缓存中所存储的所述目标广告对应的当前访问量之后,所述方法还包括:
将预设缓存中所存储的目标广告对应的当前访问量标记为已统计;
或者,
将预设缓存中的所存储的目标广告对应的当前访问量删除。
应用本实施例,当广告被访问时,将广告对应的当前访问量存储到预设缓存中,并当符合预定统计条件时基于该广告的当前访问量和该广告的历史访问量确定总访问量。无需每当广告被访问就对数据库进行访问以及对访问量进行统计,可以减少数据库的访问次数,降低服务器压力。
需要强调的是,对于服务器以及存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。