本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及針對(duì)互聯(lián)網(wǎng)信息進(jìn)行處理的技術(shù)領(lǐng)域,尤其涉及一種信息訪問方法、裝置及服務(wù)器。
背景技術(shù):
互聯(lián)網(wǎng)熱點(diǎn)排行榜是按照互聯(lián)網(wǎng)中相關(guān)同類事物被關(guān)注的程度由高至低順序進(jìn)行排列而形成的榜單信息;例如:華語歌曲TOP50排行榜、觀眾最喜愛的電影演員TOP20排行榜?,F(xiàn)有技術(shù)中,互聯(lián)網(wǎng)熱點(diǎn)排行榜的榜單信息通常存儲(chǔ)在互聯(lián)網(wǎng)數(shù)據(jù)庫(Database,簡(jiǎn)稱DB)中,當(dāng)存在海量的用戶客戶端請(qǐng)求訪問熱點(diǎn)排行榜時(shí),服務(wù)器需要頻繁從DB中拉取榜單信息,這將造成服務(wù)器或DB崩潰;為了避免上述熱點(diǎn)問題,保證服務(wù)器或DB的正常性能,現(xiàn)有技術(shù)通常不支持關(guān)于熱點(diǎn)排行榜的海量訪問,無法滿足用戶對(duì)于熱點(diǎn)排行榜的榜單信息進(jìn)行及時(shí)性獲取的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種信息訪問方法、裝置及服務(wù)器,能夠支持針對(duì)熱點(diǎn)排行榜的海量訪問,提升信息訪問效率,滿足用戶對(duì)于信息的及時(shí)性獲取的需求。
本發(fā)明實(shí)施例第一方面提供一種信息訪問方法,可包括:
當(dāng)接收到客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的訪問請(qǐng)求時(shí),獲取所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí);
根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息,其中,所述目標(biāo)熱點(diǎn)排行榜的榜單信息由分布式存儲(chǔ)系統(tǒng)同步至所述內(nèi)存映射文件中;
將所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
優(yōu)選地,在接收到客戶端針對(duì)目標(biāo)熱點(diǎn)排行榜發(fā)送的訪問請(qǐng)求之前,還包括:
采用分布式存儲(chǔ)系統(tǒng)對(duì)所述目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行存儲(chǔ);
將所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的所述目標(biāo)熱點(diǎn)排行榜的榜單信息同步至內(nèi)存映射文件中,并在所述內(nèi)存映射文件中記錄同步時(shí)間;
其中,所述榜單信息包括:至少一個(gè)候選者標(biāo)識(shí)、每個(gè)候選者的排名序號(hào)及每個(gè)候選者的關(guān)注票數(shù)。
優(yōu)選地,所述采用分布式存儲(chǔ)系統(tǒng)對(duì)所述目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行存儲(chǔ),包括:
采用字符串?dāng)?shù)組存儲(chǔ)所述目標(biāo)熱點(diǎn)排行榜的榜單信息;
對(duì)所述字符串?dāng)?shù)組進(jìn)行序列化處理以生成特征字符串;
將所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)及所述特征字符串關(guān)聯(lián)存儲(chǔ)至分布式存儲(chǔ)系統(tǒng)中。
優(yōu)選地,所述根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息之前,還包括:
判斷所述內(nèi)存映射文件中的目標(biāo)熱點(diǎn)排行榜的榜單信息是否需要更新;
若需要更新,根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從所述分布式存儲(chǔ)系統(tǒng)中拉取所述目標(biāo)熱點(diǎn)排行榜的榜單信息同步至所述內(nèi)存映射文件中,并更新所述內(nèi)存映射文件中所記錄的同步時(shí)間。
優(yōu)選地,所述判斷所述內(nèi)存映射文件中的目標(biāo)熱點(diǎn)排行榜的榜單信息是否需要更新,包括:
獲取所述訪問請(qǐng)求的請(qǐng)求時(shí)間;
計(jì)算所述請(qǐng)求時(shí)間與所述內(nèi)存映射文件中所記錄的同步時(shí)間之間的差值;
若所述差值大于預(yù)設(shè)時(shí)間閥值則確定需要更新。
優(yōu)選地,所述將所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出,包括:
對(duì)獲取的特征字符串進(jìn)行反序列化處理,得到字符串?dāng)?shù)組;
將所述字符串?dāng)?shù)組還原為所述目標(biāo)熱點(diǎn)排行榜的榜單信息;
將還原后的所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
優(yōu)選地,所述將所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出之后,還包括:
當(dāng)檢測(cè)到所述客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的投票請(qǐng)求時(shí),根據(jù)所述投票請(qǐng)求更新所述目標(biāo)熱點(diǎn)排行榜的榜單信息;
其中,所述投票請(qǐng)求中攜帶所關(guān)注的目標(biāo)候選者標(biāo)識(shí)及新投關(guān)注票數(shù)。
優(yōu)選地,所述根據(jù)所述投票請(qǐng)求更新所述目標(biāo)熱點(diǎn)排行榜的榜單信息,包括:
若所述目標(biāo)候選者標(biāo)識(shí)為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述新投關(guān)注票數(shù)更新所述目標(biāo)候選者的關(guān)注票數(shù),對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序,并按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新;或者,
若所述目標(biāo)候選者標(biāo)識(shí)并非為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述目標(biāo)候選者的已有關(guān)注票數(shù)及所述新投關(guān)注票數(shù)計(jì)算所述目標(biāo)候選者的總關(guān)注票數(shù);
比較所述目標(biāo)候選者的總關(guān)注票數(shù)與所述目標(biāo)熱點(diǎn)排行榜中排名序號(hào)最末的候選者的關(guān)注票數(shù)之間的大?。蝗羲瞿繕?biāo)候選者的總關(guān)注票數(shù)較大,從所述目標(biāo)熱點(diǎn)排行榜中刪除所述排名序號(hào)最末的候選者,將所述目標(biāo)候選者添加至所述目標(biāo)熱點(diǎn)排行榜中,并對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序,并按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新。
優(yōu)選地,該方法還包括:
按照預(yù)設(shè)周期對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行備份;
若所述分布式存儲(chǔ)系統(tǒng)產(chǎn)生讀寫異常,將備份的目標(biāo)熱點(diǎn)排行榜的榜單信息重新導(dǎo)入至所述分布式存儲(chǔ)系統(tǒng)中。
本發(fā)明實(shí)施例第二方面提供一種信息訪問裝置,可包括:
標(biāo)識(shí)獲取單元,用于當(dāng)接收到客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的訪問請(qǐng)求時(shí),獲取所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí);
查詢單元,用于根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息,其中,所述目標(biāo)熱點(diǎn)排行榜的榜單信息由分布式存儲(chǔ)系統(tǒng)同步至所述內(nèi)存映射文件中;
輸出單元,用于將所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
優(yōu)選地,該裝置還包括:
存儲(chǔ)單元,用于采用分布式存儲(chǔ)系統(tǒng)對(duì)所述目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行存儲(chǔ);
同步單元,用于將所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的所述目標(biāo)熱點(diǎn)排行榜的榜單信息同步至內(nèi)存映射文件中,并在所述內(nèi)存映射文件中記錄同步時(shí)間;
其中,所述榜單信息包括:至少一個(gè)候選者標(biāo)識(shí)、每個(gè)候選者的排名序號(hào)及每個(gè)候選者的關(guān)注票數(shù)。
優(yōu)選地,所述存儲(chǔ)單元包括:
數(shù)組處理單元,用于采用字符串?dāng)?shù)組存儲(chǔ)所述目標(biāo)熱點(diǎn)排行榜的榜單信息;
序列化處理單元,用于對(duì)所述字符串?dāng)?shù)組進(jìn)行序列化處理以生成特征字符串;
關(guān)聯(lián)存儲(chǔ)單元,用于將所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)及所述特征字符串關(guān)聯(lián)存儲(chǔ)至分布式存儲(chǔ)系統(tǒng)中。
優(yōu)選地,該裝置還包括:
判斷單元,用于判斷所述內(nèi)存映射文件中的目標(biāo)熱點(diǎn)排行榜的榜單信息是否需要更新,若需要更新,由所述同步單元根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從所述分布式存儲(chǔ)系統(tǒng)中拉取所述目標(biāo)熱點(diǎn)排行榜的榜單信息并同步至所述內(nèi)存映射文件中,并更新所述內(nèi)存映射文件中所記錄的同步時(shí)間。
優(yōu)選地,所述判斷單元包括:
時(shí)間獲取單元,用于獲取所述訪問請(qǐng)求的請(qǐng)求時(shí)間;
差值計(jì)算單元,用于計(jì)算所述請(qǐng)求時(shí)間與所述內(nèi)存映射文件中所記錄的同步時(shí)間之間的差值;
結(jié)果確認(rèn)單元,用于若所述差值大于預(yù)設(shè)時(shí)間閥值則確定需要更新。
優(yōu)選地,所述輸出單元包括:
反序列化處理單元,用于對(duì)獲取的特征字符串進(jìn)行反序列化處理,得到字符串?dāng)?shù)組;
還原處理單元,用于將所述字符串?dāng)?shù)組還原為所述目標(biāo)熱點(diǎn)排行榜的榜單信息;
返回單元,用于將還原后的所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
優(yōu)選地,該裝置還包括:
更新單元,用于當(dāng)檢測(cè)到所述客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的投票請(qǐng)求時(shí),根據(jù)所述投票請(qǐng)求更新所述目標(biāo)熱點(diǎn)排行榜的榜單信息;
其中,所述投票請(qǐng)求中攜帶所關(guān)注的目標(biāo)候選者標(biāo)識(shí)及新投關(guān)注票數(shù)。
優(yōu)選地,所述更新單元具體用于:若所述目標(biāo)候選者標(biāo)識(shí)為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述新投關(guān)注票數(shù)更新所述目標(biāo)候選者的關(guān)注票數(shù),對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序,并按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新;或者,
用于若所述目標(biāo)候選者標(biāo)識(shí)并非為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述目標(biāo)候選者的已有關(guān)注票數(shù)及所述新投關(guān)注票數(shù)計(jì)算所述目標(biāo)候選者的總關(guān)注票數(shù);
比較所述目標(biāo)候選者的總關(guān)注票數(shù)與所述目標(biāo)熱點(diǎn)排行榜中排名序號(hào)最末的候選者的關(guān)注票數(shù)之間的大小;若所述目標(biāo)候選者的總關(guān)注票數(shù)較大,從所述目標(biāo)熱點(diǎn)排行榜中刪除所述排名序號(hào)最末的候選者,將所述目標(biāo)候選者添加至所述目標(biāo)熱點(diǎn)排行榜中,并對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序,并按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新。
優(yōu)選地,該裝置還包括:
備份處理單元,用于按照預(yù)設(shè)周期對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行備份,并且,若所述分布式存儲(chǔ)系統(tǒng)產(chǎn)生讀寫異常,將備份的目標(biāo)熱點(diǎn)排行榜的榜單信息重新導(dǎo)入至所述分布式存儲(chǔ)系統(tǒng)中。
本發(fā)明實(shí)施例第三方面提供一種服務(wù)器,可包括上述第二方面所述的信息訪問裝置。
本發(fā)明實(shí)施例采用分布式存儲(chǔ)系統(tǒng)存儲(chǔ)目標(biāo)熱點(diǎn)排行榜的榜單信息,并且,將分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息同步至服務(wù)器的內(nèi)存映射文件中;那么,在客戶端提出訪問請(qǐng)求時(shí)可直接從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息并返回至所述客戶端進(jìn)行輸出;通過內(nèi)存映射文件和分布式存儲(chǔ)系統(tǒng)二者的結(jié)合,既支持海量訪問,又可保證服務(wù)器及分布式存儲(chǔ)系統(tǒng)的性能,同時(shí)能夠提升信息訪問效率,滿足用戶對(duì)于信息的及時(shí)性獲取的需求。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種信息訪問方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的另一種信息訪問方法的流程圖;
圖3為本發(fā)明實(shí)施例提供的一種服務(wù)器的內(nèi)部結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的一種信息訪問裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
互聯(lián)網(wǎng)熱點(diǎn)排行榜是按照互聯(lián)網(wǎng)中相關(guān)同類事物被關(guān)注的程度由高至低順序進(jìn)行排列而形成;例如:華語歌曲TOP50排行榜是從互聯(lián)網(wǎng)音樂庫中所收錄的所有華語歌曲中篩選出用戶關(guān)注度(又稱“人氣”)最高的前50首,并按照關(guān)注度由高至低的順序?qū)Y選出的前50首進(jìn)行排序而形成的榜單;再如:觀眾最喜愛的電影演員TOP20排行榜是從互聯(lián)網(wǎng)所收錄的所有電影演員中篩選出用戶關(guān)注度(人氣)最高、最受觀眾喜愛的前20名,并按照關(guān)注度由高至低的順序?qū)Y選出的前20名進(jìn)行排序而形成的榜單。
在本發(fā)明實(shí)施例中,一個(gè)熱點(diǎn)排行榜的榜單信息應(yīng)當(dāng)包括:至少一個(gè)候選者標(biāo)識(shí)、每個(gè)候選者的排名序號(hào)及每個(gè)候選者的關(guān)注票數(shù)。其中,候選者標(biāo)識(shí)可以包括但不限于候選者的名稱、昵稱等等;例如:華語歌曲TOP50排行榜中,50首華語歌曲即為候選者,而候選者標(biāo)識(shí)可以為歌曲名;再如:觀眾最喜愛的電影演員TOP20排行榜中,20名電影演員即為候選者,而候選者標(biāo)識(shí)可以為演員名。候選者的排名序號(hào)表示該候選者的關(guān)注度的排列情況,例如:華語歌曲TOP50排行榜中,歌曲A排名序號(hào)為1,即表明歌曲A位于榜首是當(dāng)前人氣最高的華語歌曲;再如:觀眾最喜愛的電影演員TOP20排行榜中,演員B排名序號(hào)為20,即表明演員B位于榜尾是人氣最高的前20名電影演員中人氣最弱的一位。候選者的關(guān)注票數(shù)用于直觀反映候選者的關(guān)注度,關(guān)注票數(shù)越多則關(guān)注度(人氣)越高,關(guān)注票數(shù)越少則關(guān)注度(人氣)越低;例如:華語歌曲TOP50排行榜中,歌曲A位于榜首,其關(guān)注票數(shù)最高;再如:觀眾最喜愛的電影演員TOP20排行榜中,演員B位于榜尾,其關(guān)注票數(shù)最低。需要說明的是,熱點(diǎn)排行榜是動(dòng)態(tài)變化的,比如:用戶可以針對(duì)熱點(diǎn)排行榜的榜單內(nèi)的已有候選者進(jìn)行關(guān)注投票,為其增加關(guān)注票數(shù),那么可導(dǎo)致熱點(diǎn)排行榜產(chǎn)生動(dòng)態(tài)變化;再如:用戶也可以針對(duì)熱點(diǎn)排行榜的榜單外的其他候選者進(jìn)行關(guān)注投票,為其增加關(guān)注票數(shù),那么,當(dāng)其他候選者的關(guān)注票數(shù)超過熱點(diǎn)排行榜的榜單內(nèi)的已有候選者的關(guān)注票數(shù)時(shí),則可導(dǎo)致熱點(diǎn)排行榜產(chǎn)生動(dòng)態(tài)變化。
現(xiàn)有技術(shù)為了避免熱點(diǎn)問題,保證服務(wù)器或DB的正常性能,通常不支持關(guān)于熱點(diǎn)排行榜的海量訪問,無法滿足用戶對(duì)于熱點(diǎn)排行榜的榜單信息進(jìn)行及時(shí)性獲取的需求。為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例采用分布式存儲(chǔ)系統(tǒng)替代DB來存儲(chǔ)熱點(diǎn)排行榜的榜單信息,并且,將分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息同步至服務(wù)器的內(nèi)存映射文件中;那么,在客戶端提出訪問請(qǐng)求時(shí)可直接從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息并返回至所述客戶端進(jìn)行輸出;通過內(nèi)存映射文件和分布式存儲(chǔ)系統(tǒng)二者的結(jié)合,既支持海量訪問,又可保證服務(wù)器及分布式存儲(chǔ)系統(tǒng)的性能,同時(shí)能夠提升信息訪問效率,滿足用戶對(duì)于信息的及時(shí)性獲取的需求。
基于上述描述,本發(fā)明實(shí)施例提供一種信息處理方法,請(qǐng)參見圖1,該方法可包括以下步驟S101-步驟S103。
S101,當(dāng)接收到客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的訪問請(qǐng)求時(shí),獲取所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)。
熱點(diǎn)排行榜的標(biāo)識(shí)可表示為Key,在互聯(lián)網(wǎng)中每一個(gè)熱點(diǎn)排行榜均有其各自的標(biāo)識(shí),以用于進(jìn)行唯一標(biāo)記及與其他排行榜進(jìn)行區(qū)分。客戶端可以是PC(Personal Computer,個(gè)人計(jì)算機(jī))、手機(jī)、PAD(平板電腦)等終端,也可以是運(yùn)行于終端中的功能模塊,包括但不限于:web(網(wǎng)頁)瀏覽器、應(yīng)用程序(Application,APP)等等。當(dāng)用戶請(qǐng)求訪問目標(biāo)熱點(diǎn)排行榜時(shí),客戶端會(huì)生成攜帶所請(qǐng)求的目標(biāo)熱點(diǎn)排行榜的Key的訪問請(qǐng)求,并將該訪問請(qǐng)求發(fā)送至服務(wù)器;那么,本步驟中服務(wù)器則可以從訪問請(qǐng)求中解析出目標(biāo)熱點(diǎn)排行榜的Key。
S102,根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息,其中,所述目標(biāo)熱點(diǎn)排行榜的榜單信息由分布式存儲(chǔ)系統(tǒng)同步至所述內(nèi)存映射文件中。
分布式存儲(chǔ)系統(tǒng)優(yōu)選為Key-Value存儲(chǔ)系統(tǒng),Key-value存儲(chǔ)系統(tǒng)能夠提供高性能、高可靠性、高擴(kuò)展性以及持久化的海量數(shù)據(jù)存儲(chǔ)服務(wù)。在本發(fā)明實(shí)施例中,目標(biāo)熱點(diǎn)排行榜預(yù)先在分布式存儲(chǔ)系統(tǒng)中以Key-Value成對(duì)形式關(guān)聯(lián)存儲(chǔ),Key表示目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí),Value表示目標(biāo)熱點(diǎn)排行榜的榜單信息值,通過Key可以查找到成對(duì)關(guān)聯(lián)存儲(chǔ)的Value。內(nèi)存映射文件存在于服務(wù)器本地,具體實(shí)現(xiàn)中,服務(wù)器在進(jìn)程的虛擬地址空間中保留一段內(nèi)存區(qū)域,把目標(biāo)熱點(diǎn)排行榜的榜單信息從分布式存儲(chǔ)系統(tǒng)中同步映射至該段虛擬內(nèi)存中而形成內(nèi)存映射文件。在對(duì)內(nèi)存映射文件進(jìn)行讀寫操作時(shí),無需調(diào)用API(Application Programming Interface,應(yīng)用程序編程接口)函數(shù),也不需要提供任何緩沖算法,可采用內(nèi)存讀寫方式直接操作內(nèi)存映射文件,這會(huì)極大的提升讀寫效率,提升服務(wù)器的運(yùn)行性能。本步驟中,依據(jù)目標(biāo)熱點(diǎn)排行榜的Key可直接在內(nèi)存映射文件中查詢到目標(biāo)熱點(diǎn)排行榜的榜單信息。
S103,將所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
向客戶端返回目標(biāo)熱點(diǎn)排行榜的榜單信息之后,客戶端可輸出該目標(biāo)熱點(diǎn)排行榜的榜單信息,以web瀏覽器為例,其可以通過HTML(Hyper Text Markup Language,超級(jí)文本標(biāo)記語言)頁面顯示該目標(biāo)熱點(diǎn)排行榜的榜單信息,從而使用戶通過及時(shí)讀取并了解目標(biāo)熱點(diǎn)排行榜的排行情況。
本發(fā)明實(shí)施例的信息訪問方法,采用分布式存儲(chǔ)系統(tǒng)來存儲(chǔ)熱點(diǎn)排行榜的榜單信息,并且,將分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息同步至服務(wù)器的內(nèi)存映射文件中;那么,在客戶端提出訪問請(qǐng)求時(shí)可直接從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息并返回至所述客戶端進(jìn)行輸出;通過內(nèi)存映射文件和分布式存儲(chǔ)系統(tǒng)二者的結(jié)合,既支持海量訪問,避免針對(duì)同一熱點(diǎn)排行榜的海量訪問造成分布式存儲(chǔ)系統(tǒng)崩潰,可保證服務(wù)器及分布式存儲(chǔ)系統(tǒng)的性能,同時(shí)能夠提升信息訪問效率,滿足用戶對(duì)于信息的及時(shí)性獲取的需求。
本發(fā)明實(shí)施例還提供另一種信息處理方法,請(qǐng)參見圖2,該方法可包括以下步驟S201-步驟S212。
S201,采用分布式存儲(chǔ)系統(tǒng)對(duì)所述目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行存儲(chǔ)。
分布式存儲(chǔ)系統(tǒng)優(yōu)選為Key-Value存儲(chǔ)系統(tǒng),Key-value存儲(chǔ)系統(tǒng)能夠提供高性能、高可靠性、高擴(kuò)展性以及持久化的海量數(shù)據(jù)存儲(chǔ)服務(wù)。在本發(fā)明實(shí)施例中,目標(biāo)熱點(diǎn)排行榜預(yù)先在分布式存儲(chǔ)系統(tǒng)中以Key-Value成對(duì)形式關(guān)聯(lián)存儲(chǔ),Key表示目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí),Value表示目標(biāo)熱點(diǎn)排行榜的榜單信息值,通過Key可以查找到成對(duì)關(guān)聯(lián)存儲(chǔ)的Value。
具體實(shí)現(xiàn)中,該方法在執(zhí)行步驟S201的過程中,具體執(zhí)行以下步驟s11-s13:
s11,采用字符串?dāng)?shù)組存儲(chǔ)所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
s12,對(duì)所述字符串?dāng)?shù)組進(jìn)行序列化處理以生成特征字符串。
s13,將所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)及所述特征字符串關(guān)聯(lián)存儲(chǔ)至分布式存儲(chǔ)系統(tǒng)中。
步驟s11-s13中,首先,依次讀取目標(biāo)熱點(diǎn)排行榜的榜單信息中的各項(xiàng)內(nèi)容,此處,一項(xiàng)內(nèi)容包括:一個(gè)候選者標(biāo)識(shí)、該候選者的排名序號(hào)及該候選者的關(guān)注票數(shù);并采用字符串?dāng)?shù)組結(jié)構(gòu)依次存儲(chǔ)所讀取的各項(xiàng)內(nèi)容。其次,可以采用字符串處理工具對(duì)字符串?dāng)?shù)組進(jìn)行序列化處理生成特征字符串,此處的特征字符串可表示為Value,Value以具體值的方式表征所述目標(biāo)熱點(diǎn)排行榜的榜單信息。此處的字符串處理工具可包括但不限于:Protobuf(Protocol Buffer,簡(jiǎn)稱PB,一種混合語言數(shù)據(jù)標(biāo)準(zhǔn),可用于結(jié)構(gòu)化數(shù)據(jù)串行化或序列化)等等。最后,將目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)Key與特征字符串Value成對(duì)關(guān)聯(lián)存儲(chǔ)至分布式存儲(chǔ)系統(tǒng)中。
S202,將所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的所述目標(biāo)熱點(diǎn)排行榜的榜單信息同步至內(nèi)存映射文件中,并在所述內(nèi)存映射文件中記錄同步時(shí)間。
內(nèi)存映射文件存在于服務(wù)器本地,具體實(shí)現(xiàn)中,服務(wù)器在進(jìn)程的虛擬地址空間中保留一段內(nèi)存區(qū)域,把目標(biāo)熱點(diǎn)排行榜的榜單信息從分布式存儲(chǔ)系統(tǒng)中同步映射至該段虛擬內(nèi)存中而形成內(nèi)存映射文件。在對(duì)內(nèi)存映射文件進(jìn)行讀寫操作時(shí),無需調(diào)用API函數(shù),也不需要提供任何緩沖算法,可采用內(nèi)存讀寫方式直接操作內(nèi)存映射文件,這會(huì)極大的提升讀寫效率,提升服務(wù)器的運(yùn)行性能。本步驟的同步操作相當(dāng)于在內(nèi)存映射文件中備份一份目標(biāo)熱點(diǎn)排行榜的榜單信息,內(nèi)存映射文件會(huì)記錄同步操作的同步時(shí)間,此處的同步時(shí)間可以采用具體數(shù)值表示,例如:XX年XX月XX日XX時(shí)XX分XX秒;同步時(shí)間也可以采用時(shí)間戳表示,例如:1475251200。
S203,當(dāng)接收到客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的訪問請(qǐng)求時(shí),獲取所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)。
本實(shí)施例的步驟S203可以參見圖1所示實(shí)施例的步驟S101,在此不贅述。
S204,判斷所述內(nèi)存映射文件中的目標(biāo)熱點(diǎn)排行榜的榜單信息是否需要更新;若需要更新,轉(zhuǎn)入步驟S205;否則,轉(zhuǎn)入步驟S206。
分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息是可能產(chǎn)生動(dòng)態(tài)變化的,而內(nèi)存映射文件中的目標(biāo)熱點(diǎn)排行榜的榜單信息是由分布式存儲(chǔ)系統(tǒng)同步映射而成;那么,為了保證內(nèi)存映射文件中的榜單信息的及時(shí)性和準(zhǔn)確性,在從內(nèi)存映射文件中獲取該目標(biāo)熱點(diǎn)排行榜的榜單信息之前,需要判斷該內(nèi)存映射文件是否需要更新。具體實(shí)現(xiàn)中,該方法在執(zhí)行步驟S204的判斷過程中,具體執(zhí)行如下步驟s21-s23:
s21,獲取所述訪問請(qǐng)求的請(qǐng)求時(shí)間。
s22,計(jì)算所述請(qǐng)求時(shí)間與所述內(nèi)存映射文件中所記錄的同步時(shí)間之間的差值。
s23,若所述差值大于預(yù)設(shè)時(shí)間閥值則確定需要更新。
步驟s21-s23中,所述訪問請(qǐng)求的請(qǐng)求時(shí)間可以是服務(wù)器在接收到訪問請(qǐng)求的時(shí)刻從服務(wù)器的操作系統(tǒng)中讀取到的系統(tǒng)時(shí)間。首先,將請(qǐng)求時(shí)間與內(nèi)存映射文件中所記錄的同步時(shí)間進(jìn)行減法運(yùn)算得到差值;其次,比較計(jì)算得到的差值與預(yù)設(shè)時(shí)間閥值之間的大小關(guān)系,此處預(yù)設(shè)時(shí)間閥值可以根據(jù)實(shí)際需要進(jìn)行設(shè)定及動(dòng)態(tài)調(diào)整,例如:預(yù)設(shè)時(shí)間閥值可以為10s、20s等等;并且在實(shí)際應(yīng)用中可根據(jù)需要?jiǎng)討B(tài)調(diào)整預(yù)設(shè)時(shí)間閥值以保證同步映射文件中的榜單信息的實(shí)時(shí)性和準(zhǔn)確性。如果該差值大于所述預(yù)設(shè)時(shí)間閥值,表明內(nèi)存映射文件最近還未被執(zhí)行過同步更新,其所存儲(chǔ)的榜單信息可能無法保證及時(shí)準(zhǔn)確,那么可以轉(zhuǎn)入執(zhí)行步驟S205。如果該差值小于或等于所述預(yù)設(shè)時(shí)間閥值,表明內(nèi)存映射文件最近已被執(zhí)行過同步更新,其所存儲(chǔ)的榜單信息及時(shí)準(zhǔn)確,那么可以轉(zhuǎn)入執(zhí)行步驟S206。
S205,根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從所述分布式存儲(chǔ)系統(tǒng)中拉取所述目標(biāo)熱點(diǎn)排行榜的榜單信息同步至所述內(nèi)存映射文件中,并更新所述內(nèi)存映射文件中所記錄的同步時(shí)間。
S206,根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
本實(shí)施例的步驟S206可以參見圖1所示實(shí)施例的步驟S102,在此不贅述。與分布式存儲(chǔ)系統(tǒng)同步,內(nèi)存映射文件采用Key-Value方式存儲(chǔ)目標(biāo)熱點(diǎn)排行榜的榜單信息。那么,依據(jù)目標(biāo)熱點(diǎn)排行榜的Key可在內(nèi)存映射文件中查詢到目標(biāo)熱點(diǎn)排行榜的榜單信息。
S207,對(duì)獲取的特征字符串進(jìn)行反序列化處理,得到字符串?dāng)?shù)組。
S208,將所述字符串?dāng)?shù)組還原為所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
S209,將還原后的所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
本實(shí)施例的步驟S207-S209可以是圖1所示實(shí)施例的步驟S103的具體細(xì)化步驟。通過目標(biāo)熱點(diǎn)排行榜的Key從內(nèi)存映射文件中可查詢到特征字符串;步驟S207-S209則是將特征字符串還原為目標(biāo)熱點(diǎn)排行榜的榜單信息的過程,此過程與步驟s11-s13所示的存儲(chǔ)過程相逆,通過反序列化處理及字符串?dāng)?shù)組還原處理獲得目標(biāo)熱點(diǎn)排行榜的榜單信息。
S210,當(dāng)檢測(cè)到所述客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的投票請(qǐng)求時(shí),根據(jù)所述投票請(qǐng)求更新所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
目標(biāo)熱點(diǎn)排行榜是動(dòng)態(tài)變化的,比如:用戶可以針對(duì)目標(biāo)熱點(diǎn)排行榜的榜單內(nèi)的已有候選者進(jìn)行關(guān)注投票,為其增加關(guān)注票數(shù),那么可導(dǎo)致目標(biāo)熱點(diǎn)排行榜產(chǎn)生動(dòng)態(tài)變化;再如:用戶也可以針對(duì)目標(biāo)熱點(diǎn)排行榜的榜單外的其他候選者進(jìn)行關(guān)注投票,為其增加關(guān)注票數(shù),那么,當(dāng)其他候選者的關(guān)注票數(shù)超過目標(biāo)熱點(diǎn)排行榜的榜單內(nèi)的已有候選者的關(guān)注票數(shù)時(shí),則可導(dǎo)致目標(biāo)熱點(diǎn)排行榜產(chǎn)生動(dòng)態(tài)變化。因此,本步驟在檢測(cè)到客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的投票請(qǐng)求時(shí),需要根據(jù)所述投票請(qǐng)求更新所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
在一種實(shí)施方式中,該方法在執(zhí)行步驟S210的過程中,具體執(zhí)行如下步驟s31-s32:
s31,若所述目標(biāo)候選者標(biāo)識(shí)為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述新投關(guān)注票數(shù)更新所述目標(biāo)候選者的關(guān)注票數(shù),對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序。
s32,按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新。
步驟s31-s32所示實(shí)施方式中,主要是當(dāng)用戶針對(duì)目標(biāo)熱點(diǎn)排行榜的榜單內(nèi)的已有候選者進(jìn)行關(guān)注投票,為其增加關(guān)注票數(shù)時(shí),動(dòng)態(tài)更新目標(biāo)熱點(diǎn)排行榜的榜單信息的過程。
在另一種實(shí)施方式中,該方法在執(zhí)行步驟S210的過程中,具體執(zhí)行如下步驟s41-s44:
s41,若所述目標(biāo)候選者標(biāo)識(shí)并非為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述目標(biāo)候選者的已有關(guān)注票數(shù)及所述新投關(guān)注票數(shù)計(jì)算所述目標(biāo)候選者的總關(guān)注票數(shù)。
s42,比較所述目標(biāo)候選者的總關(guān)注票數(shù)與所述目標(biāo)熱點(diǎn)排行榜中排名序號(hào)最末的候選者的關(guān)注票數(shù)之間的大小。
s43,若所述目標(biāo)候選者的總關(guān)注票數(shù)較大,從所述目標(biāo)熱點(diǎn)排行榜中刪除所述排名序號(hào)最末的候選者,將所述目標(biāo)候選者添加至所述目標(biāo)熱點(diǎn)排行榜中,并對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序。
s44,按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新。
步驟s41-s44所示實(shí)施方式中,主要是當(dāng)用戶針對(duì)目標(biāo)熱點(diǎn)排行榜的榜單外的其他候選者進(jìn)行關(guān)注投票,為其增加關(guān)注票數(shù),并且該其他候選者的關(guān)注票數(shù)超過目標(biāo)熱點(diǎn)排行榜的榜單內(nèi)的已有候選者的關(guān)注票數(shù)時(shí),動(dòng)態(tài)更新目標(biāo)熱點(diǎn)排行榜的榜單信息的過程。
S211,按照預(yù)設(shè)周期對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行備份。
S212,若所述分布式存儲(chǔ)系統(tǒng)產(chǎn)生讀寫異常,將備份的目標(biāo)熱點(diǎn)排行榜的榜單信息重新導(dǎo)入至所述分布式存儲(chǔ)系統(tǒng)中。
步驟S211-S212中,預(yù)設(shè)周期可以根據(jù)實(shí)際需要進(jìn)行設(shè)定及動(dòng)態(tài)調(diào)整,例如:預(yù)設(shè)周期可以為1分鐘、2分鐘等等。通過對(duì)分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行備份,可以在分布式存儲(chǔ)系統(tǒng)因異常情況被污染而產(chǎn)生讀寫異常時(shí),將備份的信息導(dǎo)入至分布式存儲(chǔ)系統(tǒng)中從而最大限度地修復(fù)榜單信息,防止大范圍的數(shù)據(jù)丟失。
本發(fā)明實(shí)施例的信息訪問方法,采用分布式存儲(chǔ)系統(tǒng)來存儲(chǔ)熱點(diǎn)排行榜的榜單信息,并且,將分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息同步至服務(wù)器的內(nèi)存映射文件中;那么,在客戶端提出訪問請(qǐng)求時(shí)可直接從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息并返回至所述客戶端進(jìn)行輸出;通過內(nèi)存映射文件和分布式存儲(chǔ)系統(tǒng)二者的結(jié)合,既支持海量訪問,避免針對(duì)同一熱點(diǎn)排行榜的海量訪問造成分布式存儲(chǔ)系統(tǒng)崩潰,可保證服務(wù)器及分布式存儲(chǔ)系統(tǒng)的性能,同時(shí)能夠提升信息訪問效率,滿足用戶對(duì)于信息的及時(shí)性獲取的需求。
基于上述實(shí)施例所示的信息訪問方法,本發(fā)明實(shí)施例還提供了一種服務(wù)器,請(qǐng)參見圖3,該服務(wù)器的內(nèi)部結(jié)構(gòu)可包括但不限于:處理器、網(wǎng)絡(luò)接口及存儲(chǔ)器。其中,服務(wù)器內(nèi)的處理器、網(wǎng)絡(luò)接口及存儲(chǔ)器可通過總線或其他方式連接,在本發(fā)明實(shí)施例所示圖3中以通過總線連接為例。
其中,處理器(或稱CPU(Central Processing Unit,中央處理器))是服務(wù)器的計(jì)算核心以及控制核心。網(wǎng)絡(luò)接口可選的可以包括標(biāo)準(zhǔn)的有線接口、無線接口(如WI-FI、移動(dòng)通信接口等)。存儲(chǔ)器(Memory)是服務(wù)器中的記憶設(shè)備,用于存放程序和數(shù)據(jù)??梢岳斫獾氖?,此處的存儲(chǔ)器可以是高速RAM存儲(chǔ)器,也可以是非不穩(wěn)定的存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器;可選的還可以是至少一個(gè)位于遠(yuǎn)離前述處理器的存儲(chǔ)裝置。存儲(chǔ)器提供存儲(chǔ)空間,該存儲(chǔ)空間存儲(chǔ)了服務(wù)器的操作系統(tǒng),可包括但不限于:Windows系統(tǒng)(一種操作系統(tǒng))、Linux(一種操作系統(tǒng))系統(tǒng)等等,本發(fā)明對(duì)此并不作限定。存儲(chǔ)器的存儲(chǔ)空間還存儲(chǔ)了信息訪問裝置,該信息訪問裝置在物理上可以是運(yùn)行于服務(wù)器中的一段或多段程序,例如:CGI(Common Gateway Interface,公共網(wǎng)關(guān)接口)程序;信息訪問裝置運(yùn)行時(shí)能夠?qū)崿F(xiàn)服務(wù)器與客戶端之間的信息傳遞及處理。
在本發(fā)明實(shí)施例中,服務(wù)器與分布式存儲(chǔ)系統(tǒng)相連接,該分布式存儲(chǔ)系統(tǒng)優(yōu)先為Key-Value系統(tǒng),例如CKV(由騰訊公司提供的一種海量分布式存儲(chǔ)系統(tǒng))系統(tǒng)。服務(wù)器通過運(yùn)行存儲(chǔ)器中的信息訪問裝置來執(zhí)行上述圖1-圖2所示方法流程的相應(yīng)步驟。請(qǐng)一并參見圖4,該信息訪問裝置運(yùn)行如下單元:
標(biāo)識(shí)獲取單元101,用于當(dāng)接收到客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的訪問請(qǐng)求時(shí),獲取所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)。
查詢單元102,用于根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息,其中,所述目標(biāo)熱點(diǎn)排行榜的榜單信息由分布式存儲(chǔ)系統(tǒng)同步至所述內(nèi)存映射文件中。
輸出單元103,用于將所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
具體實(shí)現(xiàn)中,該裝置還執(zhí)行如下單元:
存儲(chǔ)單元104,用于采用分布式存儲(chǔ)系統(tǒng)對(duì)所述目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行存儲(chǔ)。
同步單元105,用于將所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的所述目標(biāo)熱點(diǎn)排行榜的榜單信息同步至內(nèi)存映射文件中,并在所述內(nèi)存映射文件中記錄同步時(shí)間。
其中,所述榜單信息包括:至少一個(gè)候選者標(biāo)識(shí)、每個(gè)候選者的排名序號(hào)及每個(gè)候選者的關(guān)注票數(shù)。
具體實(shí)現(xiàn)中,該裝置在執(zhí)行所述存儲(chǔ)單元104的過程中,具體執(zhí)行如下單元:
數(shù)組處理單元1001,用于采用字符串?dāng)?shù)組存儲(chǔ)所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
序列化處理單元1002,用于對(duì)所述字符串?dāng)?shù)組進(jìn)行序列化處理以生成特征字符串。
關(guān)聯(lián)存儲(chǔ)單元1003,用于將所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)及所述特征字符串關(guān)聯(lián)存儲(chǔ)至分布式存儲(chǔ)系統(tǒng)中。
具體實(shí)現(xiàn)中,該裝置還執(zhí)行如下單元:
判斷單元106,用于判斷所述內(nèi)存映射文件中的目標(biāo)熱點(diǎn)排行榜的榜單信息是否需要更新,若需要更新,由所述同步單元105根據(jù)所述目標(biāo)熱點(diǎn)排行榜的標(biāo)識(shí)從所述分布式存儲(chǔ)系統(tǒng)中拉取所述目標(biāo)熱點(diǎn)排行榜的榜單信息并同步至所述內(nèi)存映射文件中,并更新所述內(nèi)存映射文件中所記錄的同步時(shí)間。
具體實(shí)現(xiàn)中,該裝置在執(zhí)行所述判斷單元106的過程中,具體執(zhí)行如下單元:
時(shí)間獲取單元2001,用于獲取所述訪問請(qǐng)求的請(qǐng)求時(shí)間。
差值計(jì)算單元2002,用于計(jì)算所述請(qǐng)求時(shí)間與所述內(nèi)存映射文件中所記錄的同步時(shí)間之間的差值。
結(jié)果確認(rèn)單元2003,用于若所述差值大于預(yù)設(shè)時(shí)間閥值則確定需要更新。
具體實(shí)現(xiàn)中,該裝置在執(zhí)行所述輸出單元103的過程中,具體執(zhí)行如下單元:
反序列化處理單元3001,用于對(duì)獲取的特征字符串進(jìn)行反序列化處理,得到字符串?dāng)?shù)組。
還原處理單元3002,用于將所述字符串?dāng)?shù)組還原為所述目標(biāo)熱點(diǎn)排行榜的榜單信息。
返回單元3003,用于將還原后的所述目標(biāo)熱點(diǎn)排行榜的榜單信息返回至所述客戶端進(jìn)行輸出。
具體實(shí)現(xiàn)中,該裝置還執(zhí)行如下單元:
更新單元107,用于當(dāng)檢測(cè)到所述客戶端發(fā)送的針對(duì)目標(biāo)熱點(diǎn)排行榜的投票請(qǐng)求時(shí),根據(jù)所述投票請(qǐng)求更新所述目標(biāo)熱點(diǎn)排行榜的榜單信息;其中,所述投票請(qǐng)求中攜帶所關(guān)注的目標(biāo)候選者標(biāo)識(shí)及新投關(guān)注票數(shù)。
所述更新單元107具體用于:若所述目標(biāo)候選者標(biāo)識(shí)為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述新投關(guān)注票數(shù)更新所述目標(biāo)候選者的關(guān)注票數(shù),對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序,并按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新;或者,
用于若所述目標(biāo)候選者標(biāo)識(shí)并非為所述目標(biāo)熱點(diǎn)排行榜內(nèi)已包括的候選者標(biāo)識(shí),按照所述目標(biāo)候選者的已有關(guān)注票數(shù)及所述新投關(guān)注票數(shù)計(jì)算所述目標(biāo)候選者的總關(guān)注票數(shù);比較所述目標(biāo)候選者的總關(guān)注票數(shù)與所述目標(biāo)熱點(diǎn)排行榜中排名序號(hào)最末的候選者的關(guān)注票數(shù)之間的大?。蝗羲瞿繕?biāo)候選者的總關(guān)注票數(shù)較大,從所述目標(biāo)熱點(diǎn)排行榜中刪除所述排名序號(hào)最末的候選者,將所述目標(biāo)候選者添加至所述目標(biāo)熱點(diǎn)排行榜中,并對(duì)所述目標(biāo)熱點(diǎn)排行榜進(jìn)行重新排序,并按照重新排序結(jié)果對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行更新。
具體實(shí)現(xiàn)中,該裝置還執(zhí)行如下單元:
備份處理單元108,用于按照預(yù)設(shè)周期對(duì)所述分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息進(jìn)行備份,并且,若所述分布式存儲(chǔ)系統(tǒng)產(chǎn)生讀寫異常,將備份的目標(biāo)熱點(diǎn)排行榜的榜單信息重新導(dǎo)入至所述分布式存儲(chǔ)系統(tǒng)中。
由于服務(wù)器通過運(yùn)行圖4所示的信息訪問裝置來執(zhí)行圖1-圖2所示的信息訪問方法,因此,圖4所示的信息訪問裝置的各單元的功能可參見圖1-圖2所示的信息訪問方法的各步驟的相關(guān)描述,在此不贅述。
與方法同理,本發(fā)明實(shí)施例提供的服務(wù)器及信息訪問裝置,采用分布式存儲(chǔ)系統(tǒng)來存儲(chǔ)熱點(diǎn)排行榜的榜單信息,并且,將分布式存儲(chǔ)系統(tǒng)中所存儲(chǔ)的目標(biāo)熱點(diǎn)排行榜的榜單信息同步至服務(wù)器的內(nèi)存映射文件中;那么,在客戶端提出訪問請(qǐng)求時(shí)可直接從內(nèi)存映射文件中查詢所述目標(biāo)熱點(diǎn)排行榜的榜單信息并返回至所述客戶端進(jìn)行輸出;通過內(nèi)存映射文件和分布式存儲(chǔ)系統(tǒng)二者的結(jié)合,既支持海量訪問,避免針對(duì)同一熱點(diǎn)排行榜的海量訪問造成分布式存儲(chǔ)系統(tǒng)崩潰,可保證服務(wù)器及分布式存儲(chǔ)系統(tǒng)的性能,同時(shí)能夠提升信息訪問效率,滿足用戶對(duì)于信息的及時(shí)性獲取的需求。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。