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