一種數(shù)據(jù)驗(yàn)重的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)及其軟件技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)驗(yàn)重的方法和裝置。
【背景技術(shù)】
[0002]當(dāng)前互聯(lián)網(wǎng)的系統(tǒng)都會(huì)面對(duì)數(shù)據(jù)重復(fù)接收的情況,根據(jù)不同的業(yè)務(wù)情況,重復(fù)數(shù)據(jù)造成的影響或大或小。大部分的系統(tǒng)都會(huì)采用緩存機(jī)制來(lái)驗(yàn)證數(shù)據(jù)是否重復(fù)。
[0003]現(xiàn)有的驗(yàn)證數(shù)據(jù)是否重復(fù)的方法,主要是通過(guò)redis服務(wù)器來(lái)實(shí)現(xiàn)的。每次需要驗(yàn)證數(shù)據(jù)時(shí),調(diào)用redis服務(wù)器來(lái)判斷待驗(yàn)證的數(shù)據(jù)是否已存在,如果已存在則返回該數(shù)據(jù)相關(guān)的信息,否則返回空,并存放此數(shù)據(jù)。具體的步驟如下:
[0004]a)調(diào)用redis服務(wù)器的api方法,將需要驗(yàn)證的數(shù)據(jù)傳遞到redis服務(wù)器;
[0005]b)如果該數(shù)據(jù)已存在于redis服務(wù)器上,則redis服務(wù)器返回該數(shù)據(jù)相關(guān)的信息;
[0006]c)如果該數(shù)據(jù)未存在于redis服務(wù)器上,則redis服務(wù)器返回空;
[0007]d)業(yè)務(wù)代碼根據(jù)判斷該數(shù)據(jù)不存在時(shí),將調(diào)用redis的api方法,將該數(shù)據(jù)存放到redis服務(wù)器。
[0008]現(xiàn)有技術(shù)主要存在以下缺點(diǎn):
[0009]1.內(nèi)存的容量有限。內(nèi)存的容量無(wú)法和硬盤(pán)的容量相比,現(xiàn)有redis的最大申請(qǐng)容量為32G,而申請(qǐng)的服務(wù)器的硬盤(pán)容量遠(yuǎn)遠(yuǎn)大于32G;
[0010]2.緩存的數(shù)據(jù)不方便查詢(xún)和操作。查詢(xún)r(jià)edis的數(shù)據(jù),首先需要知道數(shù)據(jù)存放的結(jié)構(gòu),再編寫(xiě)對(duì)應(yīng)的代碼,才能進(jìn)行查詢(xún)或是遍例。
[0011 ] 3.內(nèi)存在掉電時(shí)內(nèi)容會(huì)丟失。最簡(jiǎn)單的例子就是,電腦正常關(guān)機(jī)后,內(nèi)存中的數(shù)據(jù)全部丟失。
【發(fā)明內(nèi)容】
[0012]有鑒于此,本發(fā)明提供一種數(shù)據(jù)驗(yàn)重的方法和裝置,能夠避免單獨(dú)使用緩存服務(wù)器檢驗(yàn)數(shù)據(jù)重復(fù)時(shí)不方便查詢(xún)和操作的問(wèn)題,同時(shí)由于本發(fā)明技術(shù)方案可以將緩存服務(wù)器中的數(shù)據(jù)存儲(chǔ)于另一個(gè)增加的服務(wù)器中,因而解決海量數(shù)據(jù)的存儲(chǔ)問(wèn)題,也避免了由于關(guān)機(jī)或者斷電而引起的數(shù)據(jù)丟失的問(wèn)題,最終提高了數(shù)據(jù)去重的準(zhǔn)確性和高效性。
[0013]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)驗(yàn)重的方法。
[0014]本發(fā)明的數(shù)據(jù)驗(yàn)重的方法,包括:接收待檢驗(yàn)數(shù)據(jù),并將待檢驗(yàn)數(shù)據(jù)發(fā)送給第一服務(wù)器,以供第一服務(wù)器判斷該待檢驗(yàn)數(shù)據(jù)是否已經(jīng)存在于第一服務(wù)器中;接收所述第一服務(wù)器所返回的判斷結(jié)果,當(dāng)該判斷結(jié)果表明所述待檢驗(yàn)數(shù)據(jù)已存在于第一服務(wù)器時(shí),輸出用于表示所述待檢驗(yàn)數(shù)據(jù)為重復(fù)數(shù)據(jù)的提示信息;否則,將待檢驗(yàn)數(shù)據(jù)發(fā)送給第二服務(wù)器,以供第二服務(wù)器判斷該待檢驗(yàn)數(shù)據(jù)是否已經(jīng)存在于第二服務(wù)器中;接收所述第二服務(wù)器所返回的判斷結(jié)果,當(dāng)該判斷結(jié)果表明所述待檢驗(yàn)數(shù)據(jù)已存在于第二服務(wù)器時(shí),輸出用于表示所述待檢驗(yàn)數(shù)據(jù)為重復(fù)數(shù)據(jù)的提示信息,并且將所述待檢驗(yàn)數(shù)據(jù)保存在所述第一服務(wù)器中;否則,輸出所述待檢驗(yàn)數(shù)據(jù)為非重復(fù)數(shù)據(jù)的提示信息,并且將所述待檢驗(yàn)數(shù)據(jù)存儲(chǔ)于所述第二服務(wù)器中,以及將所述待檢驗(yàn)數(shù)據(jù)保存在所述第一服務(wù)器中。
[0015]可選地,輸出用于表示所述待檢驗(yàn)數(shù)據(jù)為重復(fù)數(shù)據(jù)的提示信息的步驟之后包括:在第二服務(wù)器中設(shè)定已存在于第二服務(wù)器中的所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng);并且將所述待檢驗(yàn)數(shù)據(jù)保存在所述第一服務(wù)器中的步驟包括:每隔設(shè)定的時(shí)間周期獲取所述第二服務(wù)器中的待檢驗(yàn)數(shù)據(jù),并將獲取到的數(shù)據(jù)提交給第一服務(wù)器;所述設(shè)定的時(shí)間周期小于所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng)。
[0016]可選地,將所述待檢驗(yàn)數(shù)據(jù)存儲(chǔ)于所述第二服務(wù)器中的步驟之后包括:在第二服務(wù)器中設(shè)定所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng);并且將所述待檢驗(yàn)數(shù)據(jù)保存在所述第一服務(wù)器中的步驟包括:每隔設(shè)定的時(shí)間周期獲取所述第二服務(wù)器中的待檢驗(yàn)數(shù)據(jù),并將獲取到的數(shù)據(jù)提交給第一服務(wù)器;所述設(shè)定的時(shí)間周期小于所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng)。
[0017]可選地,將獲取到的數(shù)據(jù)提交給第一服務(wù)器的步驟之后包括:接收第一服務(wù)器所返回的數(shù)據(jù)提交的反饋信息,如果反饋信息表示數(shù)據(jù)被第一服務(wù)器成功接收,則縮短所述第二服務(wù)器中的數(shù)據(jù)的失效時(shí)長(zhǎng)以使待檢測(cè)數(shù)據(jù)在縮短后的失效時(shí)長(zhǎng)內(nèi)失效;否則,重置所述第二服務(wù)器中的數(shù)據(jù)的失效時(shí)長(zhǎng)然后在下個(gè)時(shí)間周期獲取所述待檢驗(yàn)數(shù)據(jù)。
[0018]可選地,所述第一服務(wù)器包括:elasticsearch服務(wù)器或SOlr服務(wù)器;所述第二服務(wù)器包括:redis服務(wù)器。
[0019]根據(jù)本發(fā)明的另一方面,提供一種數(shù)據(jù)驗(yàn)重的裝置。
[0020]本發(fā)明的數(shù)據(jù)驗(yàn)重的裝置,包括:接收模塊,用于接收待檢驗(yàn)數(shù)據(jù),并將待檢驗(yàn)數(shù)據(jù)發(fā)送給第一服務(wù)器,以供第一服務(wù)器判斷該待檢驗(yàn)數(shù)據(jù)是否已經(jīng)存在于第一服務(wù)器中;第一輸出模塊,用于接收所述第一服務(wù)器所返回的判斷結(jié)果,當(dāng)該判斷結(jié)果表明所述待檢驗(yàn)數(shù)據(jù)已存在于第一服務(wù)器時(shí),輸出用于表示所述待檢驗(yàn)數(shù)據(jù)為重復(fù)數(shù)據(jù)的提示信息;否貝1J,將待檢驗(yàn)數(shù)據(jù)發(fā)送給第二服務(wù)器,以供第二服務(wù)器判斷該待檢驗(yàn)數(shù)據(jù)是否已經(jīng)存在于第二服務(wù)器中;第二輸出模塊,用于接收所述第二服務(wù)器所返回的判斷結(jié)果,當(dāng)該判斷結(jié)果表明所述待檢驗(yàn)數(shù)據(jù)已存在于第二服務(wù)器時(shí),輸出用于表示所述待檢驗(yàn)數(shù)據(jù)為重復(fù)數(shù)據(jù)的提示信息,并且將所述待檢驗(yàn)數(shù)據(jù)保存于所述第一服務(wù)器中;否則,輸出所述待檢驗(yàn)數(shù)據(jù)為非重復(fù)數(shù)據(jù)的提示信息,并且將所述待檢驗(yàn)數(shù)據(jù)存儲(chǔ)于所述第二服務(wù)器中,以及將所述待檢驗(yàn)數(shù)據(jù)保存在所述第一服務(wù)器中。
[0021]可選地,還包括第一設(shè)定模塊,用于在第二服務(wù)器中設(shè)定已存在于第二服務(wù)器中的所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng);并且所述第二輸出模塊還用于每隔設(shè)定的時(shí)間周期獲取所述第二服務(wù)器中的待檢驗(yàn)數(shù)據(jù),并將獲取到的數(shù)據(jù)提交給第一服務(wù)器;所述設(shè)定的時(shí)間周期小于所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng)。
[0022]可選地,還包括第二設(shè)定模塊,用于在第二服務(wù)器中設(shè)定所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng);并且所述第二輸出模塊還用于每隔設(shè)定的時(shí)間周期獲取所述第二服務(wù)器中的待檢驗(yàn)數(shù)據(jù),并將獲取到的數(shù)據(jù)提交給第一服務(wù)器;所述設(shè)定的時(shí)間周期小于所述待檢驗(yàn)數(shù)據(jù)的失效時(shí)長(zhǎng)。
[0023]可選地,還包括判斷模塊,用于接收第一服務(wù)器所返回的數(shù)據(jù)提交的反饋信息,如果反饋信息表示數(shù)據(jù)被第一服務(wù)器成功接收,則縮短所述第二服務(wù)器中的數(shù)據(jù)的失效時(shí)長(zhǎng)以使待檢測(cè)數(shù)據(jù)在縮短后的失效時(shí)長(zhǎng)內(nèi)失效;否則,重置所述第二服務(wù)器中的數(shù)據(jù)的失效時(shí)長(zhǎng)然后在下個(gè)時(shí)間周期獲取所述待檢驗(yàn)數(shù)據(jù)。
[0024]可選地,所述第一服務(wù)器包括:elasticsearch服務(wù)器或solr服務(wù)器;所述第二服務(wù)器包括:redis服務(wù)器。
[0025]根據(jù)本發(fā)明的技術(shù)方案,主要通過(guò)新增服務(wù)器與緩存服務(wù)器同時(shí)對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,因而能夠避免單獨(dú)使用緩存服務(wù)器檢驗(yàn)數(shù)據(jù)重復(fù)時(shí)不方便查詢(xún)和操作的問(wèn)題;同時(shí),由于可以將緩存服務(wù)器中的數(shù)據(jù)存儲(chǔ)于所增加的服務(wù)器中,因而解決了緩存服務(wù)器因存儲(chǔ)容量限制而導(dǎo)致的海量數(shù)據(jù)的存儲(chǔ)問(wèn)題,也避免了由于關(guān)機(jī)或者斷電而引起的數(shù)據(jù)丟失的問(wèn)題,最終提高了數(shù)據(jù)去重的準(zhǔn)確性和高效性。
【附圖說(shuō)明】
[0026]附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
[0027]圖1是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)驗(yàn)重的裝置的示意圖;
[0028]圖2是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)驗(yàn)重的方法的示意圖。
【