一种数据请求的处理方法、装置及服务器与流程

文档序号:18103973发布日期:2019-07-06 11:31阅读:142来源:国知局
一种数据请求的处理方法、装置及服务器与流程
本发明涉及数据请求处理
技术领域
,特别是涉及一种数据请求的处理方法、装置及服务器。
背景技术
:目前,在访问设置有缓存的数据库时,先是根据数据请求访问缓存,当从缓存中没有获得该数据请求对应的数据时,才会访问数据库。在数据访问过程中,如果要访问的数据不存在于缓存中也不存在于数据库中,并且对该数据并发访问的请求量很大时,就会对数据库造成很大的压力,也就是出现了缓存穿透的问题。现有技术中,为了防止出现缓存穿透,通常是预先将存储在数据库中的所有数据的标识信息,都记录至一个布隆过滤器中。在接收到一条数据请求时,首先判断请求数据的标识信息是否记录在该布隆过滤器中,如果请求数据的标识信息没有记录在该布隆过滤器中,则表明数据库中没有存储与该数据请求对应的请求数据,那么,丢弃该数据请求,不再继续访问缓存,从而避免缓存穿透的发生。然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:通常一个数据库中会存储多种类型的数据,比如:一个视频信息数据库存储的数据的类型有:视频专辑类型(ablum)、视频片段类型(episode)等。参见图1,现有技术在设计时,通常是先预估每一类型的数据对应的数据量,再按数据量最多的类型对应的数据量,来确定预留空位的个数,也就是确定预留存储空间的大小,然后,按照该确定的预留空位的个数,在同一个布隆过滤器中,为每一类型都预留多个空位用来记录标识信息。例如:预估ablum的数据量为9000个,预估episode的数据量为100个,那么,按ablum的数据量来确定预留空位的个数,比如:确定的预留空位的个数为10000个,就在同一个布隆过滤器中,为ablum和episode都预留10000个空位。在数据库中,并不是每一类型的数据的数据量都是同样多的,但像现有技术这样为每一类型都预留多个空位的设计方法,会造成了较大存储空间的浪费。例如:现有技术在设计时,每一类型都预留了10000个空位,而episode类型的数据实际可能仅有9000个,ablum类型的数据实际可能仅有100个,这就意味着,对于ablum类型来说,预留的空位中就有9900个空位不会被使用,造成了较大存储空间的浪费。并且,在实际应用中,为了便于后续扩充类型信息,现有技术在设计时,通常会在布隆过滤器中,为每一预留的类型信息也预留同样大小的存储空间,显然,这样造成的存储空间的浪费更多。技术实现要素:本发明实施例的目的在于提供一种数据请求的处理方法、装置及服务器,以实现减少存储空间的浪费。具体技术方案如下:为了达到上述目的,第一方面,本发明实施例提供了一种数据请求的处理方法,该方法,包括:获得数据请求;所述数据请求中包含有请求数据的当前标识信息;所述当前标识信息中包含有请求数据的当前类型信息;根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;其中,每个布隆过滤器中,记录有对应类型的所有数据的标识信息,每个布隆过滤器的存储空间,是按对应类型的数据的预估数据量设置的;判断所述当前布隆过滤器中,是否记录有所述当前标识信息;如果所述当前布隆过滤器中,记录有所述当前标识信息,则将所述数据请求,发送至存储有请求数据的缓存或数据库;如果所述当前布隆过滤器中,未记录有所述当前标识信息,则丢弃所述数据请求。可选的,所述当前标识信息为:所述请求数据的当前id标识;所述当前id标识为正整数;所述当前id标识具有第一预设数量位;所述当前类型信息为:由所述当前id标识末尾的第二预设数量位构成的当前类型标识位;所述第一预设数量大于所述第二预设数量。可选的,采用如下步骤,针对每个布隆过滤器,记录其对应类型的所有数据的标识信息:从数据库中,获得未记录至布隆过滤器中的数据的id标识;获得所述id标识中的类型标识位;按照预先保存的类型标识位与布隆过滤器之间的对应关系,将所述id标识,记录至对应的布隆过滤器中。可选的,所述将所述id标识,记录至对应的布隆过滤器中的步骤,包括:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),确定所述id标识在其对应的布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;将所述记录位置设置为1。可选的,所述判断所述当前布隆过滤器中,是否记录有所述当前标识信息的步骤,包括:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),计算所述当前id标识在所述当前布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;判断所述记录位置是否为1;如果所述记录位置为1,则确定所述当前布隆过滤器中记录有所述请求数据的当前标识信息;或者,如果所述记录位置不为1,则确定所述当前布隆过滤器中未记录有所述当前标识信息。第二方面,本发明实施例提供了一种数据请求的处理装置,该装置,包括:获得模块,用于获得数据请求;所述数据请求中包含有请求数据的当前标识信息;所述当前标识信息中包含有请求数据的当前类型信息;确定模块,用于根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;其中,每个布隆过滤器中,记录有对应类型的所有数据的标识信息,每个布隆过滤器的存储空间,是按对应类型的数据的预估数据量设置的;判断模块,用于判断所述当前布隆过滤器中,是否记录有所述当前标识信息;发送模块,用于当所述当前布隆过滤器中,记录有所述当前标识信息时,将所述数据请求,发送至存储有请求数据的缓存或数据库;丢弃模块,用于当所述当前布隆过滤器中,未记录有所述当前标识信息时,丢弃所述数据请求。可选的,所述当前标识信息为:所述请求数据的当前id标识;所述当前id标识为正整数;所述当前id标识具有第一预设数量位;所述当前类型信息为:由所述当前id标识末尾的第二预设数量位构成的当前类型标识位;所述第一预设数量大于所述第二预设数量。可选的,该装置,还包括:记录模块,用于针对每个布隆过滤器,记录其对应类型信息的所有数据的标识信息:所述记录模块,包括:标识获得子模块,用于从数据库中,获得未记录至布隆过滤器中的数据的id标识;标识位获得子模块,用于获得所述id标识中的类型标识位;记录子模块,用于按照预先保存的类型标识位与布隆过滤器之间的对应关系,将所述id标识,记录至对应的布隆过滤器中。可选的,所述记录子模块,具体用于:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),确定所述id标识在其对应的布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;将所述记录位置设置为1。可选的,所述判断模块,具体用于:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),计算所述当前id标识在所述当前布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;判断所述记录位置是否为1;如果所述记录位置为1,则确定所述当前布隆过滤器中记录有所述当前标识信息;或者,如果所述记录位置不为1,则确定所述当前布隆过滤器中未记录有所述当前标识信息。第三方面,本发明实施例提供了一种服务器,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如下步骤:获得数据请求;所述数据请求中包含有请求数据的当前标识信息;所述当前标识信息中包含有请求数据的当前类型信息;根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;其中,每个布隆过滤器中,记录有对应类型的所有数据的标识信息,每个布隆过滤器的存储空间,是按对应类型的数据的预估数据量设置的;判断所述当前布隆过滤器中,是否记录有所述当前标识信息;如果所述当前布隆过滤器中,记录有所述当前标识信息,则将所述数据请求,发送至存储有请求数据的缓存或数据库;如果所述当前布隆过滤器中,未记录有所述当前标识信息,则丢弃所述数据请求。本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据请求处理方法的步骤。本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一数据请求的处理方法。本发明实施例提供的一种数据请求的处理方法、装置及服务器,可以在获得数据请求时,根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;判断所述当前布隆过滤器中是否记录有所述请求数据的当前标识信息;如果所述当前布隆过滤器中,记录有所述当前标识信息,则将所述数据请求,发送至存储有请求数据的缓存或数据库;如果所述当前布隆过滤器中,未记录有所述当前标识信息,则丢弃所述数据请求。本发明实施例提供的方法,由于将不同类型的数据的标识信息记录在不同的布隆过滤器中,因此,可以针对各个类型的数据的预估数据量,设置各个布隆过滤器的存储空间,不需要像现有技术那样按数据量最多的类型来预留空位。可见,应用本发明实施例,不仅能够防止出现缓存穿透,而且解决了现有技术,在一个布隆过滤器中,为每一类型的数据都预留同样大小的存储空间,而造成的存储空间浪费的问题。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为现有技术中布隆过滤器记录数据库中的数据的结构示意图;图2为本发明实施例提供的数据请求的处理方法的一种流程示意图;图3a为本发明实施例提供的每个布隆过滤器,记录其对应类型信息的所有数据的标识信息的原理示意图;图3b为基于图3a的原理,每个布隆过滤器,记录其对应类型信息的所有数据的标识信息的一种流程示意图;图4为本发明实施例提供的数据请求的处理方法的另一种流程示意图;图5为本发明实施例提供的数据请求的处理装置的一种结构示意图;图6为本发明实施例提供的数据请求的处理装置的另一种结构示意图;图7为图6所示实施例中记录模块的结构示意图;图8为本发明实施例提供的一种服务器的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。为了达到在处理访问数据库的数据请求时,减少对存储空间的浪费,本发明实施例提供了一种数据请求的处理方法,参见图2,该方法包括:s201:获得数据请求;所述数据请求中包含有请求数据的当前标识信息;所述当前标识信息中包含有请求数据的当前类型信息;s202:根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;其中,每个布隆过滤器中,记录有对应类型信息的所有数据的标识信息,每个布隆过滤器的存储空间,是按对应类型的数据的预估数据量设置的;具体的,所述当前标识信息可以为:所述请求数据的当前id标识;所述当前id标识为正整数;所述当前id标识具有第一预设数量位;所述当前类型信息可以为:由所述当前id标识末尾的第二预设数量位构成的当前类型标识位;所述第一预设数量大于所述第二预设数量。在一种具体的实施例中,当前id标识可以由9位十进制数构成的,当前类型标识位可以由当前id标识末尾的2或4位数构成。在其他实施例中,当前id标识还可以由预设数量位二进制数或八进制数构成,当前类型标识位可以由当前id标识末尾的2、3或4位数构成。例如:当前类型标识位是由当前id标识末尾的2位数构成的,比如:请求数据的当前id标识为:xxxxxxx30,那么,请求数据的当前类型标识位为:30。具体的,根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器可以为:根据数据请求中的当前类型标识位,按照预先保存的类型标识位与布隆过滤器之间的对应关系,从与不同类型标识位对应的多个布隆过滤器中,确定与所述当前类型信息对应的当前布隆过滤器。例如,类型标识位与布隆过滤器的对应关系,可以如表一所示表一类型类型标识位布隆过滤器视频专辑类型(ablum)01布隆过滤器01………视频片段类型(episode)12布隆过滤器12………xxx类型99布隆过滤器99比如:数据请求中的当前类型标识位为:12,从预先保存的类型标识位与布隆过滤器之间的对应关系中,获知类型标识位12与布隆过滤器12之间有对应关系,那么,确定与所述当前类型信息对应的当前布隆过滤器为布隆过滤器12。s203:判断所述当前布隆过滤器中,是否记录有所述当前标识信息;具体的,判断所述当前布隆过滤器中,是否记录有所述当前标识信息的步骤,可以包括:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),计算当前id标识在当前布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为第t个类型信息对应的类型标识位的个数;判断当前id标识在当前布隆过滤器中对应的记录位置是否为1;如果是1,则当前布隆过滤器中,记录有所述当前标识信息;如果不是1,则当前布隆过滤器中,没有记录所述请求数据的当前标识信息。s204:如果所述当前布隆过滤器中,记录有所述当前标识信息,则将所述数据请求,发送至存储有请求数据的缓存或数据库;具体的,在实际应用中,如果访问的是设有缓存的数据库,则当当前布隆过滤器中记录有当前标识信息时,可以将所述数据请求,发送至缓存;如果访问的是未设有缓存的数据库,则当当前布隆过滤器中记录有当前标识信息时,可以将所述数据请求,发送至数据库。s205:如果所述当前布隆过滤器中,未记录有所述当前标识信息,则丢弃所述数据请求。由图2所示的实施例可见,本发明实施例提供的数据请求的处理方法,由于将不同类型的数据的标识信息记录在不同的布隆过滤器中,因此,可以针对各个类型的数据的预估数据量,设置各个布隆过滤器的存储空间,不需要像现有技术那样按数据量最多的类型来预留空位。可见,应用本发明实施例,不仅能够防止出现缓存穿透,而且解决了现有技术,在一个布隆过滤器中,为每一类型的数据都预留同样大小的存储空间,而造成的存储空间浪费的问题。可选的,参见图3a,针对每个布隆过滤器,记录其对应类型信息的所有数据的标识信息的原理如下:从数据库中,获得未记录至布隆过滤器中的数据的id标识,从id标识中过滤出类型标识位,将该id标识存储至对应类型的布隆过滤器中。具体的,如图3b所示,本发明实施例可以采用如下步骤,针对每个布隆过滤器,记录其对应类型信息的所有数据的标识信息:s301:从数据库中,获得未记录至布隆过滤器中的数据的id标识;s302:对所述id标识进行过滤,获得所述id标识中的类型标识位;s303:按照预先保存的类型标识位与布隆过滤器之间的对应关系,将所述id标识,记录至对应的布隆过滤器中。具体的,将所述id标识,记录至对应的布隆过滤器中的步骤,可以包括:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),确定id标识在其对应的布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为第t个类型信息对应的类型标识位的个数;将id标识在其对应的布隆过滤器中对应的记录位置设置为1。例如:从数据库中,获得未记录至布隆过滤器中的数据的id标识为:123456730;获得该id标识中的类型标识位为:30;可以根据预先保存的不同类型标识位与不同布隆过滤器之间的对应关系,确定与类型标识位30对应的布隆过滤器为布隆过滤器30;利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),确定该id标识在布隆过滤器30中对应的记录位置;具体的,参数key=123456730,t=30,o(t)=2,hash(123456730,30)=floor((123456730)/102)=1234567,这样就确定了该id标识在布隆过滤器30中对应的记录位置为:1234567;将该记录位置设置为1,用于记录数据库中id标识为123456730的数据。在实际应用中,如果由于某些原因,数据库中第一个id标识不是由1开始的,为了保证在布隆过滤器中是从第一个空位开始记录id标识的,可以根据实际情况对哈希函数:hash(key,t)=floor((key)/10o(t))做以调整,比如,第一个id标识是由90000000开始的,那么,在设计布隆过滤器中的哈希函数时,可以将哈希函数设计为:hash(key,t)=floor((key-90000000)/10o(t))或hash(key,t)=floor((key)/10o(t))-90000000。本发明实施例所提供的方法,仅使用了一个哈希函数,来计算id标识在布隆过滤器中的记录位置,相较于现有技术通常使用多个哈希函数计算记录位置,减少了哈希函数的使用个数,从而降低了计算的复杂度及减少了计算时长。另外,由于在数据库中为每一类型的数据分配的id标识通常是连续的,而在本发明实施例中,由于是利用哈希函数:hash(key,t)=floor((key)/10o(t))来计算id标识在布隆过滤器中的记录位置,而利用该哈希函数计算得到的记录位置与id标识中除类型标识位外的数字都是一样的,因此可以使得数据在布隆过滤器中的记录位置也是连续的,从而可以避免由于记录位置不连续,导致的可能存在有的记录位置没有被使用到问题,可以确保布隆过滤器中的存储空间得到最大限度的利用。此外,当某一布隆过滤器的存储空间不足时,本发明实施例提供的方法,仅需要扩充该布隆过滤器的存储空间,较为方便和灵活,并且,由于利用本发明实施例提供的哈希函数,数据在布隆过滤器中的记录位置是连续的,因此,可以避免现有技术中由于记录位置不连续,导致的在扩充布隆过滤器的存储空间后,需要重新计算数据在布隆过滤器中的记录位置的问题。参见图4,在一种具体的实施例中,针对设有缓存的数据库数据请求的处理过程可以为:s401:获得数据请求;s402:根据该数据请求中的当前id标识中的当前类型标识位,确定与该当前类型标识位对应的当前布隆过滤器;s403:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),计算与该id标识在当前布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;s404:判断该记录位置是否为1;如果该记录位置为1,则执行步骤s405;如果该记录位置不为1,则执行步骤s406;s405:将该数据请求,发送至缓存;s406:丢弃该数据请求。例如:类型过滤器,获得的数据请求中的当前id标识为:120000112,该当前id标识中的当前类型标识位为:12;可以根据预先保存的不同类型标识位与不同布隆过滤器之间的对应关系,确定与当前类型标识位12对应的当前布隆过滤器为布隆过滤器12;利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),计算该当前id标识在布隆过滤器12中对应的记录位置;具体的,参数key=120000112,t=12,o(t)=2,hash(120000112,12)=floor((120000112)/102)=1200001,这样就得到了该当前id标识在布隆过滤器12中对应的记录位置为:1200001;进一步的,判断记录位置1200001是否为1;如果该记录位置为1,则将该数据请求,发送至缓存;如果该记录位置不为1,则丢弃该数据请求。在其他实施例中,如果访问的是未设有缓存的数据库,那么,步骤s401-s404及s406不变,只有步骤s405变为:将该数据请求,发送至数据库。本发明实施例提供的数据请求的处理方法,由于将不同类型的数据的标识信息记录在不同的布隆过滤器中,因此,可以针对各个类型的数据的预估数据量,设置各个布隆过滤器的存储空间,不需要像现有技术那样按数据量最多的类型来预留空位。可见,应用本发明实施例,不仅能够防止出现缓存穿透,而且解决了现有技术,在一个布隆过滤器中,为每一类型的数据都预留同样大小的存储空间,而造成的存储空间浪费的问题。另外,在后续扩充类型信息时,本发明实施例所提供的方法,只需要新增一个布隆过滤器和添加一条新增类型信息与新增布隆过滤器的对应关系就可以了,相较于现有技术在一个布隆过滤器中,为每一预留的类型信息提前预留同样大小的存储空间,本发明实施例所提供的方法更为方便、灵活,且不用提前为每一预留的类型信息提前预留存储空间,进一步减少了存储空间的浪费。与图2所示实施例对应的,本发明实施例还提供了一种数据请求的处理装置,参见图5,该装置可以包括:获得模块501,用于获得数据请求;所述数据请求中包含有请求数据的当前标识信息;所述当前标识信息中包含有请求数据的当前类型信息;确定模块502,用于根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;其中,每个布隆过滤器中,记录有对应类型的所有数据的标识信息,每个布隆过滤器的存储空间,是按对应类型的数据的预估数据量设置的;判断模块503,用于判断所述当前布隆过滤器中,是否记录有所述当前标识信息;发送模块504,用于当所述当前布隆过滤器中,记录有所述当前标识信息时,将所述数据请求,存储有请求数据的缓存或数据库;丢弃模块505,用于当所述当前布隆过滤器中,未记录有所述当前标识信息时,丢弃所述数据请求。可选的,所述当前标识信息为:所述请求数据的当前id标识;所述当前id标识为正整数;所述当前id标识具有第一预设数量位;所述当前类型信息为:由所述当前id标识末尾的第二预设数量位构成的当前类型标识位;所述第一预设数量大于所述第二预设数量。参见图6,可选的,该装置,还包括:记录模块601,用于针对每个布隆过滤器,记录其对应类型信息的所有数据的标识信息:参见图7,所述记录模块601,包括:标识获得子模701,用于从数据库中,获得未记录至布隆过滤器中的数据的id标识;标识位获得子模块702,用于获得所述id标识中的类型标识位;记录子模块703,用于按照预先保存的类型标识位与布隆过滤器之间的对应关系,将所述id标识,记录至对应的布隆过滤器中。可选的,所述记录子模块703,具体用于:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),确定所述id标识在其对应的布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;将所述记录位置设置为1。可选的,所述判断模块503,具体用于:利用预设的哈希函数:hash(key,t)=floor((key)/10o(t)),计算所述当前id标识在所述当前布隆过滤器中对应的记录位置;其中,key表示id标识,t表示第t个类型信息,floor()函数为向下取整函数,o(t)为所述第t个类型信息对应的类型标识位的个数;判断所述记录位置是否为1;如果所述记录位置为1,则确定所述当前布隆过滤器中记录有所述当前标识信息;如果所述记录位置不为1,则确定所述当前布隆过滤器中未记录有所述当前标识信息。本发明实施例提供的数据请求的处理装置,由于将不同类型的数据的标识信息记录在不同的布隆过滤器中,因此,可以针对各个类型的数据的预估数据量,设置各个布隆过滤器的存储空间,不需要像现有技术那样按数据量最多的类型来预留空位。可见,应用本发明实施例,不仅能够防止出现缓存穿透,而且解决了现有技术,在一个布隆过滤器中,为每一类型的数据都预留同样大小的存储空间,而造成的存储空间浪费的问题。与图2所示实施例对应的,本发明实施例还提供了一种服务器,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,存储器803,用于存放计算机程序;处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:获得数据请求;所述数据请求中包含有请求数据的当前标识信息;所述当前标识信息中包含有请求数据的当前类型信息;根据预设的不同类型信息与不同布隆过滤器之间的对应关系,确定与所述当前类型信息对应的当前布隆过滤器;所述每个布隆过滤器中,记录有对应类型信息的所有数据的标识信息,每个布隆过滤器的存储空间,是按对应类型的数据的预估数据量设置的;判断所述当前布隆过滤器中,是否记录有所述当前标识信息;如果所述当前布隆过滤器中,记录有所述当前标识信息,则将所述数据请求,存储有请求数据的缓存或数据库;如果所述当前布隆过滤器中,未记录有所述当前标识信息,则丢弃所述数据请求。本发明实施例提供的服务器,由于将不同类型的数据的标识信息记录在不同的布隆过滤器中,因此,可以针对各个类型的数据的预估数据量,设置各个布隆过滤器的存储空间,不需要像现有技术那样按数据量最多的类型来预留空位。可见,应用本发明实施例,不仅能够防止出现缓存穿透,而且解决了现有技术,在一个布隆过滤器中,为每一类型的数据都预留同样大小的存储空间,而造成的存储空间浪费的问题。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据请求的处理方法的步骤。在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据请求的处理方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1