本發(fā)明涉及日志存儲(chǔ)與讀取領(lǐng)域,特別涉及一種日志的存儲(chǔ)與讀取方法及裝置。
背景技術(shù):
隨著大數(shù)據(jù)、服務(wù)器等技術(shù)在計(jì)算機(jī)領(lǐng)域的推廣,將產(chǎn)生海量的日志文件,在日志保存方面,需要對日志文件快速準(zhǔn)確進(jìn)行保存,且隨著科學(xué)技術(shù)的發(fā)展,對于將日志文件按照指定位置保存的需求越來越高;且在保存之后,還需要按照不同的需求進(jìn)行不同的日志的讀取,進(jìn)而方便進(jìn)行日志統(tǒng)計(jì);在日志存儲(chǔ)與讀取過程中,既要保證時(shí)間的高效性,還要保證數(shù)據(jù)的簡易性和準(zhǔn)確性,因此,目前急需要一種可以準(zhǔn)確高效又簡易的日志存儲(chǔ)與讀取方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種日志的存儲(chǔ)與讀取方法及裝置,通過對日志的預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算,并根據(jù)哈希計(jì)算獲取的第一哈希值對日志進(jìn)行準(zhǔn)確存儲(chǔ),以供在需要對日志進(jìn)行統(tǒng)計(jì)時(shí)讀取該日志,其操作過程簡便高效,提升了用戶體驗(yàn)。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種日志的存儲(chǔ)與讀取方法,包括:
自各地服務(wù)器上讀取日志,并獲取所述日志的預(yù)設(shè)存儲(chǔ)參數(shù)和日志生成時(shí)間;
根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值;
根據(jù)所述第一哈希值確定所述日志的存儲(chǔ)區(qū)域,并將所述日志與所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。
在一些實(shí)施例中,所述預(yù)設(shè)存儲(chǔ)參數(shù)包括日志ID、日志類型、日志點(diǎn)擊數(shù)量和/或日志訪問量。
在一些實(shí)施例中,所述根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值,包括:
將多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行拼接;
根據(jù)拼接后的多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值。
在一些實(shí)施例中,所述方法還包括:
根據(jù)所述日志的生成時(shí)間進(jìn)行哈希計(jì)算生成第二哈希值;
將所述第二哈希值與所述日志關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。
在一些實(shí)施例中,所述將所述第二哈希值與所述日志關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中之后,還包括:
在需要讀取日志進(jìn)行統(tǒng)計(jì)時(shí),獲取待統(tǒng)計(jì)的日志所屬的時(shí)間范圍;
將所述時(shí)間范圍內(nèi)的預(yù)設(shè)時(shí)間段進(jìn)行哈希計(jì)算生成第三哈希值;
在各所述存儲(chǔ)區(qū)域中搜索與所述第三哈希值匹配的第二哈希值,并讀取與所述第二哈希值關(guān)聯(lián)的日志。
根據(jù)本發(fā)明實(shí)施例的第二方面,還提供一種日志的存儲(chǔ)與讀取裝置,包括:
參數(shù)獲取模塊,用于自各地服務(wù)器上讀取日志,并獲取所述日志的預(yù)設(shè)存儲(chǔ)參數(shù)和日志生成時(shí)間;
第一生成模塊,用于根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值;
第一存儲(chǔ)模塊,用于根據(jù)所述第一哈希值確定所述日志的存儲(chǔ)區(qū)域,并將所述日志與所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。
在一些實(shí)施例中,所述預(yù)設(shè)存儲(chǔ)參數(shù)包括日志ID、日志類型、日志點(diǎn)擊數(shù)量和/或日志訪問量。
在一些實(shí)施例中,所述第一生成模塊包括:
拼接子模塊,用于將多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行拼接;
生成子模塊,用于根據(jù)拼接后的多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值。
在一些實(shí)施例中,所述裝置還包括:
第二生成模塊,用于根據(jù)所述日志的生成時(shí)間進(jìn)行哈希計(jì)算生成第二哈希值;
第二存儲(chǔ)模塊,用于將所述第二哈希值與所述日志關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。
在一些實(shí)施例中,所述裝置還包括:
時(shí)間獲取模塊,用于在需要讀取日志進(jìn)行統(tǒng)計(jì)時(shí),獲取待統(tǒng)計(jì)的日志所屬的時(shí)間范圍;
第三生成模塊,用于將所述時(shí)間范圍內(nèi)的預(yù)設(shè)時(shí)間段進(jìn)行哈希計(jì)算生成第三哈希值;
讀取模塊,用于在各所述存儲(chǔ)區(qū)域中搜索與所述第三哈希值匹配的第二哈希值,并讀取與所述第二哈希值關(guān)聯(lián)的日志。
本發(fā)明實(shí)施例提供的技術(shù)方案可產(chǎn)生以下有益效果:自各地服務(wù)器上讀取日志,并獲取所述日志的預(yù)設(shè)存儲(chǔ)參數(shù)和日志生成時(shí)間;根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值;根據(jù)所述第一哈希值確定所述日志的存儲(chǔ)區(qū)域,并將所述日志與所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。該方案通過對日志的預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算,并根據(jù)哈希計(jì)算獲取的第一哈希值對日志進(jìn)行準(zhǔn)確存儲(chǔ),以供在需要對日志進(jìn)行統(tǒng)計(jì)時(shí)讀取該日志,其操作過程簡便高效,提升了用戶體驗(yàn)。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
附圖說明
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。
在附圖中:
圖1為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種日志的存儲(chǔ)與讀取方法的流程圖。
圖2為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種日志的存儲(chǔ)與讀取方法中步驟S20的流程圖。
圖3為本發(fā)明根據(jù)一示例性實(shí)施例示出的另一種日志的存儲(chǔ)與讀取方法的流程圖。
圖4為本發(fā)明根據(jù)一示例性實(shí)施例示出的又一種日志的存儲(chǔ)與讀取方法的流程圖。
圖5為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種日志的存儲(chǔ)與讀取裝置的框圖。
圖6為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種日志的存儲(chǔ)與讀取裝置中第一生成模塊62的框圖。
圖7為本發(fā)明根據(jù)一示例性實(shí)施例示出的另一種日志的存儲(chǔ)與讀取裝置的框圖。
圖8為本發(fā)明根據(jù)一示例性實(shí)施例示出的又一種日志的存儲(chǔ)與讀取裝置的框圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
本公開實(shí)施例提供了一種日志的存儲(chǔ)與讀取方法,用于通過對日志的預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算,并根據(jù)哈希計(jì)算獲取的第一哈希值對日志進(jìn)行準(zhǔn)確存儲(chǔ),以供在需要對日志進(jìn)行統(tǒng)計(jì)時(shí)讀取該日志,其操作過程簡便高效,提升了用戶體驗(yàn)。如圖1所示,該方法包括步驟S10-S30:
在步驟S10中,自各地服務(wù)器上讀取日志,并獲取所述日志的預(yù)設(shè)存儲(chǔ)參數(shù)和日志生成時(shí)間;也即,自各地服務(wù)器上讀取其中一條日志,并獲取該條日志的預(yù)設(shè)存儲(chǔ)參數(shù),其中,所述預(yù)設(shè)存儲(chǔ)參數(shù)可以根據(jù)需要進(jìn)行設(shè)定,在一些實(shí)施例中,所述預(yù)設(shè)存儲(chǔ)參數(shù)包括但不限定于為日志ID、日志類型、日志點(diǎn)擊數(shù)量和/或日志訪問量中的一種或多種。該預(yù)設(shè)存儲(chǔ)參數(shù)是根據(jù)業(yè)務(wù)的需求來進(jìn)行設(shè)定的,比如,某些業(yè)務(wù)需要進(jìn)行日志點(diǎn)擊數(shù)量的統(tǒng)計(jì),則可以根據(jù)日志點(diǎn)擊數(shù)量來進(jìn)行分類存儲(chǔ),比如,將日志點(diǎn)擊數(shù)量在預(yù)設(shè)數(shù)量以上的存儲(chǔ)至一個(gè)存儲(chǔ)區(qū)域,而將日志點(diǎn)擊數(shù)量在預(yù)設(shè)數(shù)量以下的(或某個(gè)范圍內(nèi))存儲(chǔ)在另一個(gè)存儲(chǔ)區(qū)域,以便于后續(xù)進(jìn)行讀取和統(tǒng)計(jì)。
在步驟S20中,根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值;也即,所述預(yù)設(shè)存儲(chǔ)參數(shù)在進(jìn)行哈希計(jì)算之后生成了可以用于快速查找的第一哈希值,可以根據(jù)所述第一哈希值查找所述存儲(chǔ)區(qū)域中與所述第一哈希值對應(yīng)的哈希值;其中,所述存儲(chǔ)區(qū)域中適合存儲(chǔ)的日志的標(biāo)簽已預(yù)先進(jìn)行哈希計(jì)算,將所述第一哈希值與所述存儲(chǔ)區(qū)域的標(biāo)簽進(jìn)行匹配即可查找到與其對應(yīng)的存儲(chǔ)區(qū)域,并將所述日志存儲(chǔ)至與其匹配的存儲(chǔ)區(qū)域中。
在步驟S30中,根據(jù)所述第一哈希值確定所述日志的存儲(chǔ)區(qū)域,并將所述日志與所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。也即,在根據(jù)所述第一哈希值確定與所述日志的第一哈希值匹配的存儲(chǔ)區(qū)域之后,將所述日志及所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域,在需要進(jìn)行讀取日志時(shí),也可以根據(jù)所述第一哈希值進(jìn)行調(diào)取。
在一些實(shí)施例中,如圖2所示,所述步驟S20包括:
步驟S201、將多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行拼接;也即,在本實(shí)施例中,如果所述預(yù)設(shè)存儲(chǔ)參數(shù)為多個(gè),比如,當(dāng)所述預(yù)設(shè)存儲(chǔ)參數(shù)為日志ID和日志類型時(shí),首先需要將該日志的日志ID與日志類型進(jìn)行拼接,且本次拼接的順序與拼接方式可以按照預(yù)設(shè)的規(guī)則執(zhí)行,比如,可以將所述日志ID放置于所述日志類型的前面進(jìn)行拼接,也可以將所述日志ID放置于所述日志類型的后面進(jìn)行拼接,該拼接方式可以根據(jù)用戶的喜好和需求進(jìn)行設(shè)定。
步驟S202、根據(jù)拼接后的多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值。在進(jìn)行拼接完畢之后,可以將拼接之后的結(jié)果進(jìn)行哈希計(jì)算,生成第一哈希值,并根據(jù)所述第一哈希值將所述日志存儲(chǔ)至對應(yīng)的存儲(chǔ)區(qū)域中。
在一些實(shí)施例中,如圖3所示,所述方法的步驟S10中自各地服務(wù)器上讀取日志之后還包括步驟S40-S50:
在步驟S40中,根據(jù)所述日志的生成時(shí)間進(jìn)行哈希計(jì)算生成第二哈希值;可理解的,該步驟可以在所述步驟S10中獲取到所述日志的生成時(shí)間之后就進(jìn)行,也可以等待所述步驟S30中將所述日志存儲(chǔ)至存儲(chǔ)區(qū)域之后再進(jìn)行,根據(jù)用戶需要設(shè)定,在該步驟中,將所述日志的生成時(shí)間計(jì)算生成第二哈希值,是為了在后續(xù)的統(tǒng)計(jì)過程中,根據(jù)所述第二哈希值所對應(yīng)的所述日志的生成時(shí)間獲取在一定時(shí)間之內(nèi)生成的日志文件。
在步驟S50中,將所述第二哈希值與所述日志關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。也即,所述第二哈希值必須與所述第一哈希值及所述日志一并關(guān)聯(lián)存儲(chǔ),可理解的,在后續(xù)在需要進(jìn)行統(tǒng)計(jì)的情況下,讀取日志時(shí),可以同時(shí)根據(jù)所述第一哈希值與所述第二哈希值中的一個(gè)或兩個(gè)進(jìn)行讀取。
在一些實(shí)施例中,如圖4所示,所述方法的步驟S50之后包括步驟S60-S80:
在步驟S60中,在需要讀取日志進(jìn)行統(tǒng)計(jì)時(shí),獲取待統(tǒng)計(jì)的日志所屬的時(shí)間范圍;也即,在該步驟中,當(dāng)需要讀取日志進(jìn)行統(tǒng)計(jì)時(shí),首先需要明確需要統(tǒng)計(jì)的日志所屬的時(shí)間范圍,從而獲取該時(shí)間范圍之內(nèi)生成的日志。
在步驟S70中,將所述時(shí)間范圍內(nèi)的預(yù)設(shè)時(shí)間段進(jìn)行哈希計(jì)算生成第三哈希值;也即,在需要進(jìn)行查找時(shí),首先將需要查找的數(shù)據(jù)(比如預(yù)設(shè)時(shí)間段的各時(shí)間)映射為它的哈希值(也即第三哈希值),然后查找具有這個(gè)哈希值的存儲(chǔ)區(qū)域中的日志。可理解的,該時(shí)間段的長度可以根據(jù)需要進(jìn)行設(shè)定,比如,設(shè)定該時(shí)間段的時(shí)長為1分鐘。
在步驟S80中,在各所述存儲(chǔ)區(qū)域中搜索與所述第三哈希值匹配的第二哈希值,并讀取與所述第二哈希值關(guān)聯(lián)的日志。也即,由于之前存儲(chǔ)至各所述存儲(chǔ)區(qū)域中的日志均已關(guān)聯(lián)存儲(chǔ)有第二哈希值(也即日志的生成時(shí)間),因此,只要在各所述存儲(chǔ)區(qū)域中查找具有與所述第三哈希值匹配的第二哈希值,只要兩者的值相同,就說明該日志是屬于正在查找的時(shí)間段內(nèi)的某個(gè)時(shí)間生成的日志。
本發(fā)明實(shí)施例提供的上述方法,自各地服務(wù)器上讀取日志,并獲取所述日志的預(yù)設(shè)存儲(chǔ)參數(shù)和日志生成時(shí)間;根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值;根據(jù)所述第一哈希值確定所述日志的存儲(chǔ)區(qū)域,并將所述日志與所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。該方案通過對日志的預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算,并根據(jù)哈希計(jì)算獲取的第一哈希值對日志進(jìn)行準(zhǔn)確存儲(chǔ),以供在需要對日志進(jìn)行統(tǒng)計(jì)時(shí)讀取該日志,其操作過程簡便高效,提升了用戶體驗(yàn)。
對應(yīng)本發(fā)明實(shí)施例提供的日志的存儲(chǔ)與讀取方法,本發(fā)明還提供日志的存儲(chǔ)與讀取裝置,如圖5所示,該裝置可包括:
參數(shù)獲取模塊61,用于自各地服務(wù)器上讀取日志,并獲取所述日志的預(yù)設(shè)存儲(chǔ)參數(shù)和日志生成時(shí)間;也即,自各地服務(wù)器上讀取其中一條日志,并獲取該條日志的預(yù)設(shè)存儲(chǔ)參數(shù),其中,所述預(yù)設(shè)存儲(chǔ)參數(shù)可以根據(jù)需要進(jìn)行設(shè)定,在一些實(shí)施例中,所述預(yù)設(shè)存儲(chǔ)參數(shù)包括但不限定于為日志ID、日志類型、日志點(diǎn)擊數(shù)量和/或日志訪問量中的一種或多種。該預(yù)設(shè)存儲(chǔ)參數(shù)是根據(jù)業(yè)務(wù)的需求來進(jìn)行設(shè)定的,比如,某些業(yè)務(wù)需要進(jìn)行日志點(diǎn)擊數(shù)量的統(tǒng)計(jì),則可以根據(jù)日志點(diǎn)擊數(shù)量來進(jìn)行分類存儲(chǔ),比如,將日志點(diǎn)擊數(shù)量在預(yù)設(shè)數(shù)量以上的存儲(chǔ)至一個(gè)存儲(chǔ)區(qū)域,而將日志點(diǎn)擊數(shù)量在預(yù)設(shè)數(shù)量以下的(或某個(gè)范圍內(nèi))存儲(chǔ)在另一個(gè)存儲(chǔ)區(qū)域,以便于后續(xù)進(jìn)行讀取和統(tǒng)計(jì)。
第一生成模塊62,用于根據(jù)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值;也即,所述預(yù)設(shè)存儲(chǔ)參數(shù)在進(jìn)行哈希計(jì)算之后生成了可以用于快速查找的第一哈希值,可以根據(jù)所述第一哈希值查找所述存儲(chǔ)區(qū)域中與所述第一哈希值對應(yīng)的哈希值;其中,所述存儲(chǔ)區(qū)域中適合存儲(chǔ)的日志的標(biāo)簽已預(yù)先進(jìn)行哈希計(jì)算,將所述第一哈希值與所述存儲(chǔ)區(qū)域的標(biāo)簽進(jìn)行匹配即可查找到與其對應(yīng)的存儲(chǔ)區(qū)域,并將所述日志存儲(chǔ)至與其匹配的存儲(chǔ)區(qū)域中。
第一存儲(chǔ)模塊63,用于根據(jù)所述第一哈希值確定所述日志的存儲(chǔ)區(qū)域,并將所述日志與所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。也即,在根據(jù)所述第一哈希值確定與所述日志的第一哈希值匹配的存儲(chǔ)區(qū)域之后,將所述日志及所述第一哈希值關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域,在需要進(jìn)行讀取日志時(shí),也可以根據(jù)所述第一哈希值進(jìn)行調(diào)取。
在一些實(shí)施例中,所述預(yù)設(shè)存儲(chǔ)參數(shù)包括日志ID、日志類型、日志點(diǎn)擊數(shù)量和/或日志訪問量。
在一些實(shí)施例中,如圖6所示,所述第一生成模塊62包括:
拼接子模塊621,用于將多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行拼接;也即,在本實(shí)施例中,如果所述預(yù)設(shè)存儲(chǔ)參數(shù)為多個(gè),比如,當(dāng)所述預(yù)設(shè)存儲(chǔ)參數(shù)為日志ID和日志類型時(shí),首先需要將該日志的日志ID與日志類型進(jìn)行拼接,且本次拼接的順序與拼接方式可以按照預(yù)設(shè)的規(guī)則執(zhí)行,比如,可以將所述日志ID放置于所述日志類型的前面進(jìn)行拼接,也可以將所述日志ID放置于所述日志類型的后面進(jìn)行拼接,該拼接方式可以根據(jù)用戶的喜好和需求進(jìn)行設(shè)定。
生成子模塊622,用于根據(jù)拼接后的多個(gè)所述預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算生成第一哈希值。在進(jìn)行拼接完畢之后,可以將拼接之后的結(jié)果進(jìn)行哈希計(jì)算,生成第一哈希值,并根據(jù)所述第一哈希值將所述日志存儲(chǔ)至對應(yīng)的存儲(chǔ)區(qū)域中。
在一些實(shí)施例中,如圖7所示,所述裝置還包括:
第二生成模塊64,用于根據(jù)所述日志的生成時(shí)間進(jìn)行哈希計(jì)算生成第二哈希值;可理解的,根據(jù)所述日志的生成時(shí)間進(jìn)行哈希計(jì)算生成第二哈希值可以在獲取到所述日志的生成時(shí)間之后就進(jìn)行,也可以等待將所述日志存儲(chǔ)至存儲(chǔ)區(qū)域之后再進(jìn)行,根據(jù)用戶需要設(shè)定;將所述日志的生成時(shí)間計(jì)算生成第二哈希值,是為了在后續(xù)的統(tǒng)計(jì)過程中,根據(jù)所述第二哈希值所對應(yīng)的所述日志的生成時(shí)間獲取在一定時(shí)間之內(nèi)生成的日志文件。
第二存儲(chǔ)模塊65,用于將所述第二哈希值與所述日志關(guān)聯(lián)存儲(chǔ)至所述存儲(chǔ)區(qū)域中。也即,所述第二哈希值必須與所述第一哈希值及所述日志一并關(guān)聯(lián)存儲(chǔ),可理解的,在后續(xù)在需要進(jìn)行統(tǒng)計(jì)的情況下,讀取日志時(shí),可以同時(shí)根據(jù)所述第一哈希值與所述第二哈希值中的一個(gè)或兩個(gè)進(jìn)行讀取。
在一些實(shí)施例中,如圖8所示,所述裝置還包括:
時(shí)間獲取模塊66,用于在需要讀取日志進(jìn)行統(tǒng)計(jì)時(shí),獲取待統(tǒng)計(jì)的日志所屬的時(shí)間范圍;也即,當(dāng)需要讀取日志進(jìn)行統(tǒng)計(jì)時(shí),首先需要明確需要統(tǒng)計(jì)的日志所屬的時(shí)間范圍,從而獲取該時(shí)間范圍之內(nèi)生成的日志。
第三生成模塊67,用于將所述時(shí)間范圍內(nèi)的預(yù)設(shè)時(shí)間段進(jìn)行哈希計(jì)算生成第三哈希值;也即,在需要進(jìn)行查找時(shí),首先將需要查找的數(shù)據(jù)(比如預(yù)設(shè)時(shí)間段的各時(shí)間)映射為它的哈希值(也即第三哈希值),然后查找具有這個(gè)哈希值的存儲(chǔ)區(qū)域中的日志??衫斫獾?,該時(shí)間段的長度可以根據(jù)需要進(jìn)行設(shè)定,比如,設(shè)定該時(shí)間段的時(shí)長為1分鐘。
讀取模塊68,用于在各所述存儲(chǔ)區(qū)域中搜索與所述第三哈希值匹配的第二哈希值,并讀取與所述第二哈希值關(guān)聯(lián)的日志。也即,由于之前存儲(chǔ)至各所述存儲(chǔ)區(qū)域中的日志均已關(guān)聯(lián)存儲(chǔ)有第二哈希值(也即日志的生成時(shí)間),因此,只要在各所述存儲(chǔ)區(qū)域中查找具有與所述第三哈希值匹配的第二哈希值,只要兩者的值相同,就說明該日志是屬于正在查找的時(shí)間段內(nèi)的某個(gè)時(shí)間生成的日志。
本發(fā)明實(shí)施例提供的上述裝置通過對日志的預(yù)設(shè)存儲(chǔ)參數(shù)進(jìn)行哈希計(jì)算,并根據(jù)哈希計(jì)算獲取的第一哈希值對日志進(jìn)行準(zhǔn)確存儲(chǔ),以供在需要對日志進(jìn)行統(tǒng)計(jì)時(shí)讀取該日志,其操作過程簡便高效,提升了用戶體驗(yàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序請求實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序請求到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程信息處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程信息處理設(shè)備的處理器執(zhí)行的請求產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序請求也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程信息處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的請求產(chǎn)生包括請求裝置的制造品,該請求裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序請求也可裝載到計(jì)算機(jī)或其他可編程信息處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的請求提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。