一種分頁查詢方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種分頁查詢方法,包括:客戶端將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器,N為大于或等于1的正整數(shù);如果當(dāng)前查詢頁碼為第一頁,則服務(wù)器按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示;如果當(dāng)前查詢頁碼不是第一頁,則服務(wù)器從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。本發(fā)明還公開了一種分頁查詢系統(tǒng)。
【專利說明】
一種分頁查詢方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種分頁查詢方法及系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的分頁查詢是根據(jù)頁碼和該頁碼中所應(yīng)顯示的數(shù)據(jù)條數(shù)進(jìn)行查詢,每次查詢時(shí)通過頁碼和該頁碼中的數(shù)據(jù)條數(shù)計(jì)算查詢的起始位置。例如,當(dāng)用戶查詢QQ好友動(dòng)態(tài)時(shí),由于QQ客戶端側(cè)中預(yù)設(shè)了每一查詢頁碼所應(yīng)顯示的動(dòng)態(tài)條數(shù),假設(shè)每頁應(yīng)顯示的動(dòng)態(tài)條數(shù)均為10,則當(dāng)用戶利用QQ客戶端加載第一頁動(dòng)態(tài)數(shù)據(jù)時(shí),服務(wù)器會(huì)按照數(shù)據(jù)排序從數(shù)據(jù)庫中調(diào)取第I至第10條好友動(dòng)態(tài)返回給客戶端進(jìn)行顯示,當(dāng)用戶通過QQ客戶端加載第二頁動(dòng)態(tài)數(shù)據(jù)時(shí),服務(wù)器會(huì)按照數(shù)據(jù)排序從數(shù)據(jù)庫中調(diào)取第11至第20條好友動(dòng)態(tài)返回給客戶端進(jìn)行顯示,依次類推。
[0003]雖然上述方法可以實(shí)現(xiàn)分頁查詢,但是會(huì)出現(xiàn)分頁查詢數(shù)據(jù)不準(zhǔn)確的現(xiàn)象。例如,當(dāng)用戶查詢第二頁數(shù)據(jù)時(shí),如果在這之前數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生了增加比如加在了第I條數(shù)據(jù)的位置,則按照上述分頁查詢方法,第二頁的數(shù)據(jù)中就會(huì)出現(xiàn)之前第I頁查詢時(shí)已經(jīng)出現(xiàn)過的最后一條數(shù)據(jù),這樣就會(huì)導(dǎo)致客戶端對動(dòng)態(tài)數(shù)據(jù)的重復(fù)加載;又例如,當(dāng)用戶查詢第二頁數(shù)據(jù)時(shí),如果在這之前數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生了刪除比如刪除了前10條中的某條數(shù)據(jù),則按照上述分頁查詢方法,本來應(yīng)該出現(xiàn)在第二頁的數(shù)據(jù)會(huì)計(jì)算成第一頁的數(shù)據(jù),這會(huì)導(dǎo)致第二頁的數(shù)據(jù)出現(xiàn)缺失。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實(shí)施例的主要目的在于提供一種分頁查詢方法及系統(tǒng),可以提高分頁查詢的準(zhǔn)確性。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種分頁查詢方法,包括:
[0006]客戶端將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器,N為大于或等于I的正整數(shù);
[0007]如果當(dāng)前查詢頁碼為第一頁,則服務(wù)器按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示;
[0008]如果當(dāng)前查詢頁碼不是第一頁,則服務(wù)器從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。
[0009]可選的,所述分頁查詢數(shù)據(jù)中的每一條數(shù)據(jù)以鍵值對的形式存儲在數(shù)據(jù)庫中,其中,每一條數(shù)據(jù)對應(yīng)的鍵值被存入數(shù)據(jù)庫中的一個(gè)有序集合中,且每一鍵值對應(yīng)一個(gè)分?jǐn)?shù)值,所述分?jǐn)?shù)值為對應(yīng)鍵值在所述有序集合中的排序權(quán)重。
[0010]可選的,所述從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),包括:
[0011]獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值;
[0012]從所述分頁查詢數(shù)據(jù)對應(yīng)的各個(gè)分?jǐn)?shù)值中,查詢與所述第一分?jǐn)?shù)值相等的所有分?jǐn)?shù)值;
[0013]若所述所有分?jǐn)?shù)值中只有所述第一分?jǐn)?shù)值,則在所述有序集合中找到與所述第一分?jǐn)?shù)值對應(yīng)的所述第一鍵值;
[0014]若所述所有分?jǐn)?shù)值中至少有兩個(gè)分?jǐn)?shù)值,則依據(jù)對所述所有分?jǐn)?shù)值對應(yīng)鍵值的排序規(guī)則,從所述所有分?jǐn)?shù)值對應(yīng)鍵值中查找所述第一鍵值;
[0015]按照對所述有序集合中各個(gè)鍵值的排序,從所述第一鍵值開始,從所述有序集合中提取N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
[0016]可選的,所述方法還包括:
[0017]服務(wù)器將所述前一查詢頁碼的數(shù)據(jù)返回給客戶端進(jìn)行顯示的同時(shí),將所述前一查詢頁碼的最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值返回給客戶端;
[0018]客戶端將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器的同時(shí),將所述第一鍵值和所述第一分?jǐn)?shù)值發(fā)送給服務(wù)器;
[0019]所述獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值,包括:
[0020]接收客戶端發(fā)送的所述第一鍵值和所述第一分?jǐn)?shù)值。
[0021]可選的,所述按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),包括:
[0022]按照對所述有序集合中各個(gè)鍵值的排序,從第一個(gè)鍵值開始,從所述有序集合中提取前N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
[0023]本發(fā)明實(shí)施例還提供了一種分頁查詢系統(tǒng),包括客戶端和服務(wù)器;
[0024]所述客戶端,用于將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器,N為大于或等于I的正整數(shù);
[0025]所述服務(wù)器,用于如果當(dāng)前查詢頁碼為第一頁,則按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示;
[0026]所述服務(wù)器,還用于如果當(dāng)前查詢頁碼不是第一頁,則從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。
[0027]可選的,所述分頁查詢數(shù)據(jù)中的每一條數(shù)據(jù)以鍵值對的形式存儲在數(shù)據(jù)庫中,其中,每一條數(shù)據(jù)對應(yīng)的鍵值被存入數(shù)據(jù)庫中的一個(gè)有序集合中,且每一鍵值對應(yīng)一個(gè)分?jǐn)?shù)值,所述分?jǐn)?shù)值為對應(yīng)鍵值在所述有序集合中的排序權(quán)重。
[0028]可選的,所述服務(wù)器包括:
[0029]數(shù)據(jù)分值獲取單元,用于如果當(dāng)前查詢頁碼不是第一頁,則獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值;
[0030]相等分值查詢單元,用于從所述分頁查詢數(shù)據(jù)對應(yīng)的各個(gè)分?jǐn)?shù)值中,查詢與所述第一分?jǐn)?shù)值相等的所有分?jǐn)?shù)值;
[0031 ]第一鍵值查找單元,用于若所述所有分?jǐn)?shù)值中只有所述第一分?jǐn)?shù)值,則在所述有序集合中找到與所述第一分?jǐn)?shù)值對應(yīng)的所述第一鍵值;
[0032]所述第一鍵值查找單元,還用于若所述所有分?jǐn)?shù)值中至少有兩個(gè)分?jǐn)?shù)值,則依據(jù)對所述所有分?jǐn)?shù)值對應(yīng)鍵值的排序規(guī)則,從所述所有分?jǐn)?shù)值對應(yīng)鍵值中查找所述第一鍵值;
[0033]第一數(shù)據(jù)獲取單元,用于按照對所述有序集合中各個(gè)鍵值的排序,從所述第一鍵值開始,從所述有序集合中提取N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
[0034]可選的,所述服務(wù)器,還用于將所述前一查詢頁碼的數(shù)據(jù)返回給客戶端進(jìn)行顯示的同時(shí),將所述前一查詢頁碼的最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值返回給客戶端;
[0035]所述客戶端,還用于將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器的同時(shí),將所述第一鍵值和所述第一分?jǐn)?shù)值發(fā)送給服務(wù)器;
[0036]所述數(shù)據(jù)分值獲取單元,具體用于接收客戶端發(fā)送的所述第一鍵值和所述第一分?jǐn)?shù)值。
[0037]可選的,所述服務(wù)器包括:
[0038]第二數(shù)據(jù)獲取單元,用于如果當(dāng)前查詢頁碼為第一頁,則按照對所述有序集合中各個(gè)鍵值的排序,從第一個(gè)鍵值開始,從所述有序集合中提取前N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
[0039]本發(fā)明實(shí)施例提供的分頁查詢方法及系統(tǒng),客戶端將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器;如果當(dāng)前查詢頁碼不是第一頁,則服務(wù)器從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示??梢姡?wù)器是從前一查詢頁碼的最后一條數(shù)據(jù)開始取數(shù)據(jù)并返回給客戶端的,這使得數(shù)據(jù)能夠按照其在數(shù)據(jù)庫的排序依次顯示在客戶端,不會(huì)因數(shù)據(jù)庫中增加了數(shù)據(jù),而導(dǎo)致當(dāng)前查詢頁碼中出現(xiàn)前一查詢頁碼中的數(shù)據(jù),避免了當(dāng)前查詢頁碼的數(shù)據(jù)重復(fù),也不會(huì)因數(shù)據(jù)庫中刪除了數(shù)據(jù),而導(dǎo)致當(dāng)前查詢頁碼中本應(yīng)出現(xiàn)的數(shù)據(jù)被計(jì)算成前一查詢頁碼中的數(shù)據(jù),避免了當(dāng)前查詢頁碼的數(shù)據(jù)缺失。
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0041 ]圖1為本發(fā)明實(shí)施例分頁查詢方法的流程示意圖;
[0042]圖2為本發(fā)明實(shí)施例查詢數(shù)據(jù)獲取方法的流程示意圖;
[0043]圖3為本發(fā)明實(shí)施例分頁查詢系統(tǒng)的組成示意圖。
【具體實(shí)施方式】
[0044]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]參見圖1,為本發(fā)明實(shí)施例提供的分頁查詢方法的流程示意圖,包括:
[0046]步驟101:客戶端將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器,N為大于或等于I的正整數(shù)。
[0047]在本發(fā)明實(shí)施例中,客戶端(即前端)側(cè)的分頁查詢程序中預(yù)設(shè)了每一查詢頁碼中所應(yīng)顯示的數(shù)據(jù)條數(shù)N,其中,每一查詢頁碼中顯示的數(shù)據(jù)條數(shù)N可以相同也可以不同。當(dāng)用戶通過客戶端進(jìn)行分頁查詢時(shí),客戶端會(huì)檢測到當(dāng)前具體的查詢頁碼,并會(huì)將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器(即后端),以便客戶端從服務(wù)器端加載當(dāng)前查詢頁碼的N條數(shù)據(jù)。
[0048]步驟102:如果當(dāng)前查詢頁碼為第一頁,則服務(wù)器按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯不O
[0049]在本發(fā)明實(shí)施例中,所述分頁查詢數(shù)據(jù)是指當(dāng)前分頁查詢操作對應(yīng)的全部查詢數(shù)據(jù),所述分頁查詢數(shù)據(jù)中的每一條數(shù)據(jù)以鍵值對(Key-Value)的形式存儲在數(shù)據(jù)庫中,即每一數(shù)據(jù)都對應(yīng)一個(gè)全局唯一的鍵(Key),鍵(Key)是空間中資源的唯一標(biāo)識符,每一數(shù)據(jù)存放在代表該數(shù)據(jù)的Key對應(yīng)的Value中。具體地,所述分頁查詢數(shù)據(jù)可以是Redis數(shù)據(jù),所述鍵值對是Redis鍵值對,Redis是一個(gè)開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。
[0050]其中,每一條數(shù)據(jù)對應(yīng)的鍵值Key被存入數(shù)據(jù)庫中的一個(gè)有序集合中,且每一鍵值Key對應(yīng)一個(gè)分?jǐn)?shù)值Score,所述分?jǐn)?shù)值Score為對應(yīng)鍵值Key在所述有序集合中的排序權(quán)重。具體來講,在執(zhí)行步驟101即分頁查詢操作之前,需預(yù)先對所述分頁查詢數(shù)據(jù)及其相關(guān)信息按照一定的方式進(jìn)行存儲,即,在將每一條數(shù)據(jù)存入鍵值對(Key-Value)的同時(shí),建立一個(gè)有序集合用于分頁查詢時(shí)使用,具體是將代表每一數(shù)據(jù)的Key存入有序集合,各個(gè)key在有序集合中是依據(jù)每一個(gè)Key對應(yīng)的分?jǐn)?shù)值Score進(jìn)行排序的,例如,當(dāng)需要按照時(shí)間順序進(jìn)行分頁查詢時(shí),則將Score設(shè)為時(shí)間戳,有序集合中的各個(gè)key則按照時(shí)間順序進(jìn)行排序,具體可以將最新時(shí)間出現(xiàn)的數(shù)據(jù)排序在前,或者將將最新時(shí)間出現(xiàn)的數(shù)據(jù)排序在后。
[0051]在一些實(shí)施方式中,基于上述有序集合的建立,步驟102可以包括:按照對有序集合中各個(gè)鍵值Key的排序,從第一個(gè)鍵值Key開始,從所述有序集合中提取前N個(gè)鍵值Key,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值Key分別對應(yīng)的N條數(shù)據(jù)。在這種實(shí)施方式中,由于有序集合中的各個(gè)Key已經(jīng)排序好了,當(dāng)用戶通過客戶端查詢第一頁數(shù)據(jù)時(shí),服務(wù)器可直接將有序集合中前N個(gè)鍵值Key對應(yīng)的N條數(shù)據(jù)從數(shù)據(jù)庫中提取出來,并返回給客戶端,以便這N條數(shù)據(jù)在客戶端側(cè)以N個(gè)鍵值Key在有序集合中的排序進(jìn)行順序顯示。
[0052]步驟103:如果當(dāng)前查詢頁碼不是第一頁,則服務(wù)器從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。
[0053]參見圖2所示的查詢數(shù)據(jù)獲取方法的流程示意圖,步驟103可以包括以下步驟:
[0054]步驟201:如果當(dāng)前查詢頁碼不是第一頁,則獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值LastKey和第一分?jǐn)?shù)值LastScore。
[0055]為實(shí)現(xiàn)步驟201,在一些實(shí)施方式中,所述方法還包括:服務(wù)器將所述前一查詢頁碼的數(shù)據(jù)返回給客戶端進(jìn)行顯示的同時(shí),將所述前一查詢頁碼的最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值返回給客戶端;客戶端將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器的同時(shí),將所述第一鍵值和所述第一分?jǐn)?shù)值發(fā)送給服務(wù)器,基于此,則步驟201可以包括:如果當(dāng)前查詢頁碼不是第一頁,則接收客戶端發(fā)送的所述第一鍵值和所述第一分?jǐn)?shù)值。
[0056]具體地,假設(shè)當(dāng)前查詢頁碼為第二頁,則服務(wù)器在將第一頁的所有數(shù)據(jù)返回給客戶端進(jìn)行顯示的同時(shí),還向客戶端返回第一頁中排在最后的數(shù)據(jù)對應(yīng)的Key和Score,分別記為第一鍵值LastKey和第一分?jǐn)?shù)值LastScore。當(dāng)用戶通過客戶端查詢第二頁數(shù)據(jù)即查詢當(dāng)前查詢頁碼中的數(shù)據(jù)時(shí),客戶端會(huì)將第二頁的數(shù)據(jù)條數(shù)N以及LastKey和LastScore—同傳回服務(wù)器,可見,服務(wù)器是通過接收客戶端發(fā)送的LastKey和LastScore來獲取第一頁最后一條數(shù)據(jù)對應(yīng)的鍵值和分?jǐn)?shù)值的。如果當(dāng)前查詢頁碼為第三頁、第四頁……,同樣按照上述對第二頁的查詢方式進(jìn)行查詢。
[0057]步驟202:從所述分頁查詢數(shù)據(jù)對應(yīng)的各個(gè)分?jǐn)?shù)值中,查詢與所述第一分?jǐn)?shù)值LastScore相等的所有分?jǐn)?shù)值。
[0058]假設(shè)所述分頁查詢數(shù)據(jù)為1^(1丨8數(shù)據(jù),服務(wù)器通過調(diào)用1^(1丨8的2作1^61^300代接口查到全部Score(該全部Score為上述有序集合中所有key分別對應(yīng)的Score)中等于LastScore的所有分?jǐn)?shù)值,在本實(shí)施例中,將這些與LastScore相同的每個(gè)分?jǐn)?shù)值均記為Set(LastScore)。
[0059]步驟203:若所述所有分?jǐn)?shù)值中只有所述第一分?jǐn)?shù)值LastScore,則在所述有序集合中找到與所述第一分?jǐn)?shù)值LastScore對應(yīng)的所述第一鍵值LastKey。
[0060]在步驟203中,如果查詢到的所有Set(LastScore)中只有一個(gè)分?jǐn)?shù)值即第一分?jǐn)?shù)值LastScore,則直接根據(jù)LastScore從有序集合中定位到Las tScore對應(yīng)的第一鍵值LastKey即可。
[0061 ]步驟204:若所述所有分?jǐn)?shù)值中至少有兩個(gè)分?jǐn)?shù)值,則依據(jù)對所述所有分?jǐn)?shù)值對應(yīng)鍵值的排序規(guī)則,從所述所有分?jǐn)?shù)值對應(yīng)鍵值中查找所述第一鍵值LastKey。
[0062]如果所述分頁查詢數(shù)據(jù)為Redis數(shù)據(jù),則由Redis數(shù)據(jù)對應(yīng)的鍵值key所組成的有序集合有一個(gè)特性,即所有具有相同Score的數(shù)據(jù)按照Key的字母序進(jìn)行排序,首先根據(jù)key的首字母,按照“0、1、……9、A、B……Z、a、b……z”的順序進(jìn)行排序,如果存在首字母相同的多個(gè)key,則對這些具有相同首字母的key,根據(jù)key的第二個(gè)字母,同樣按照“O、1、......9、A、
B……Z、a、b……z”的順序進(jìn)行排序,依次類推。
[0063]在步驟204中,如果查詢到的所有Set (LastScore)中有兩個(gè)或兩個(gè)以上的LastScore,基于以上排序規(guī)則,將有序集合中每個(gè)Set (LastScore)對應(yīng)的key與LastKey進(jìn)行比對,在這些Set (LastScore)對應(yīng)的key中找到LastKey。
[0064]步驟205:按照對所述有序集合中各個(gè)鍵值的排序,從所述第一鍵值LastKey開始,從所述有序集合中提取N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù),并將獲取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。
[0065]通過步驟204的比對,從這些Set(LastScore)對應(yīng)的Key中獲取第一個(gè)字母排序大于LastKey字母排序的Key,并計(jì)算獲取的這個(gè)Key在這些Set (LastScore)中的位移,這個(gè)位移記為of f set,從有序集合中提取第of f set到of f set+N個(gè)Key,這些key對應(yīng)的N條數(shù)據(jù)即為當(dāng)前查詢頁碼中的數(shù)據(jù),服務(wù)器將這N條數(shù)據(jù)返回給客戶端,以便這N條數(shù)據(jù)在客戶端側(cè)以對應(yīng)的N個(gè)鍵值Key在有序集合中的排序進(jìn)彳丁順序顯不。
[0066]可以理解的是,按照Score來進(jìn)行分頁查詢時(shí)只需O(1gn)的復(fù)雜度,而直接按照數(shù)據(jù)標(biāo)識ID進(jìn)行分頁查詢時(shí)需要0(n)的復(fù)雜度,因此與按照數(shù)據(jù)標(biāo)識ID進(jìn)行分頁查詢相比,按照Score來進(jìn)行分頁查詢的查詢速度要快。
[0067]本發(fā)明實(shí)施例提供的分頁查詢方法,客戶端將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器;如果當(dāng)前查詢頁碼不是第一頁,則服務(wù)器從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。可見,服務(wù)器是從前一查詢頁碼的最后一條數(shù)據(jù)開始取數(shù)據(jù)并返回給客戶端的,這使得數(shù)據(jù)能夠按照其在數(shù)據(jù)庫的排序依次顯示在客戶端,不會(huì)因數(shù)據(jù)庫中增加了數(shù)據(jù),而導(dǎo)致當(dāng)前查詢頁碼中出現(xiàn)前一查詢頁碼中的數(shù)據(jù),避免了當(dāng)前查詢頁碼的數(shù)據(jù)重復(fù),也不會(huì)因數(shù)據(jù)庫中刪除了數(shù)據(jù),而導(dǎo)致當(dāng)前查詢頁碼中本應(yīng)出現(xiàn)的數(shù)據(jù)被計(jì)算成前一查詢頁碼中的數(shù)據(jù),避免了當(dāng)前查詢頁碼的數(shù)據(jù)缺失。
[0068]為了更方便的了解本發(fā)明實(shí)施例,下面舉例說明。
[0069]本發(fā)明實(shí)施例可以用于QQ好友動(dòng)態(tài)的分頁查詢,為實(shí)現(xiàn)該分頁查詢操作,數(shù)據(jù)庫中預(yù)先存儲了用戶的好友動(dòng)態(tài)數(shù)據(jù),且每一動(dòng)態(tài)數(shù)據(jù)存放在代表該數(shù)據(jù)的key對應(yīng)的Value中,每一key對應(yīng)有一個(gè)分?jǐn)?shù)值Score,該Score被設(shè)定為時(shí)間戳,依據(jù)各個(gè)Score,按照時(shí)間順序?qū)γ恳粍?dòng)態(tài)數(shù)據(jù)對應(yīng)的key進(jìn)行了排序,形成了一個(gè)有序集合,具體可以是按照時(shí)間由近到遠(yuǎn)的順序排序。
[0070]當(dāng)用戶利用QQ客戶端查詢好友動(dòng)態(tài)時(shí),如果QQ客戶端檢測到用戶打開好友動(dòng)態(tài)界面的操作,則確定當(dāng)前查詢頁碼是第一頁,此時(shí)QQ客戶端會(huì)將第一頁所應(yīng)加載的好友動(dòng)態(tài)條數(shù)NI發(fā)送至服務(wù)器,服務(wù)器從有序集合中定位排名在前的NI個(gè)key,并將這NI個(gè)key分別對應(yīng)的Value值(S卩NI個(gè)動(dòng)態(tài)數(shù)據(jù))返回給客戶端,同時(shí)將第一頁最后一條動(dòng)態(tài)數(shù)據(jù)對應(yīng)的第一鍵值和LastKey和第一分?jǐn)?shù)值LastScore也返回給客戶端,客戶端按照NI個(gè)動(dòng)態(tài)數(shù)據(jù)在有序集合中的時(shí)間先后順序進(jìn)彳丁顯不。
[0071]當(dāng)用戶查詢了第一頁的NI條好友動(dòng)態(tài)后,隨著用戶對動(dòng)態(tài)數(shù)據(jù)的進(jìn)一步查詢,當(dāng)QQ客戶端檢測到當(dāng)前查詢頁碼是第二頁時(shí),此時(shí)QQ客戶端會(huì)將第二頁所應(yīng)加載的好友動(dòng)態(tài)條數(shù)N2以及第一鍵值和LastKey和第一分?jǐn)?shù)值LastScore—起發(fā)送至服務(wù)器,對于全部好用動(dòng)態(tài)對應(yīng)的全部Score,服務(wù)器會(huì)從中找到所有與LastScore相同的Score,并按照所有相同Score對應(yīng)的key在有序集合中字母排序規(guī)則,從這些相同Score對應(yīng)的各個(gè)key中定位到LastKey,并按照有序集合中key的排序,從LastKey的下一個(gè)key開始,從有序集合中提取N2個(gè)key,將這N2個(gè)key分別對應(yīng)的Value值(S卩N2個(gè)動(dòng)態(tài)數(shù)據(jù))返回給客戶端,同時(shí)將第二頁最后一條動(dòng)態(tài)數(shù)據(jù)對應(yīng)的第一鍵值和LastKey和第一分?jǐn)?shù)值LastScore也返回給客戶端,客戶端按照N2個(gè)動(dòng)態(tài)數(shù)據(jù)在有序集合中的時(shí)間先后順序進(jìn)行顯示。依次類推,之后的查詢過程與第二頁相同,在此不再贅述。
[0072]參見圖3,為本發(fā)明實(shí)施例提供的分頁查詢系統(tǒng)的組成示意圖,該系統(tǒng)包括客戶端301和服務(wù)器302;
[0073]所述客戶端301,用于將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器302,N為大于或等于I的正整數(shù);
[0074]所述服務(wù)器302,用于如果當(dāng)前查詢頁碼為第一頁,則按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端301進(jìn)行顯示;
[0075]所述服務(wù)器302,還用于如果當(dāng)前查詢頁碼不是第一頁,則從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端301進(jìn)行顯示。
[0076]在本發(fā)明實(shí)施例中,所述分頁查詢數(shù)據(jù)中的每一條數(shù)據(jù)以鍵值對的形式存儲在數(shù)據(jù)庫中,其中,每一條數(shù)據(jù)對應(yīng)的鍵值被存入數(shù)據(jù)庫中的一個(gè)有序集合中,且每一鍵值對應(yīng)一個(gè)分?jǐn)?shù)值,所述分?jǐn)?shù)值為對應(yīng)鍵值在所述有序集合中的排序權(quán)重。
[0077]在本發(fā)明實(shí)施例中,所述服務(wù)器302包括:
[0078]數(shù)據(jù)分值獲取單元,用于如果當(dāng)前查詢頁碼不是第一頁,則獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值;
[0079]相等分值查詢單元,用于從所述分頁查詢數(shù)據(jù)對應(yīng)的各個(gè)分?jǐn)?shù)值中,查詢與所述第一分?jǐn)?shù)值相等的所有分?jǐn)?shù)值;
[0080]第一鍵值查找單元,用于若所述所有分?jǐn)?shù)值中只有所述第一分?jǐn)?shù)值,則在所述有序集合中找到與所述第一分?jǐn)?shù)值對應(yīng)的所述第一鍵值;
[0081]所述第一鍵值查找單元,還用于若所述所有分?jǐn)?shù)值中至少有兩個(gè)分?jǐn)?shù)值,則依據(jù)對所述所有分?jǐn)?shù)值對應(yīng)鍵值的排序規(guī)則,從所述所有分?jǐn)?shù)值對應(yīng)鍵值中查找所述第一鍵值;
[0082]第一數(shù)據(jù)獲取單元,用于按照對所述有序集合中各個(gè)鍵值的排序,從所述第一鍵值開始,從所述有序集合中提取N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
[0083]在本發(fā)明實(shí)施例中,所述服務(wù)器302,還用于將所述前一查詢頁碼的數(shù)據(jù)返回給客戶端301進(jìn)行顯示的同時(shí),將所述前一查詢頁碼的最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值返回給客戶端301;
[0084]所述客戶端301,還用于將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器302的同時(shí),將所述第一鍵值和所述第一分?jǐn)?shù)值發(fā)送給服務(wù)器302;
[0085]所述數(shù)據(jù)分值獲取單元,具體用于接收客戶端301發(fā)送的所述第一鍵值和所述第一分?jǐn)?shù)值。
[0086]在本發(fā)明實(shí)施例中,所述服務(wù)器302包括:
[0087]第二數(shù)據(jù)獲取單元,用于如果當(dāng)前查詢頁碼為第一頁,則按照對所述有序集合中各個(gè)鍵值的排序,從第一個(gè)鍵值開始,從所述有序集合中提取前N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
[0088]通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法中的全部或部分步驟可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者諸如媒體網(wǎng)關(guān)等網(wǎng)絡(luò)通信設(shè)備,等等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0089]需要說明的是,對于實(shí)施例公開的系統(tǒng)而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0090]還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0091]對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種分頁查詢方法,其特征在于,包括: 客戶端將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器,N為大于或等于I的正整數(shù); 如果當(dāng)前查詢頁碼為第一頁,則服務(wù)器按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示; 如果當(dāng)前查詢頁碼不是第一頁,則服務(wù)器從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分頁查詢數(shù)據(jù)中的每一條數(shù)據(jù)以鍵值對的形式存儲在數(shù)據(jù)庫中,其中,每一條數(shù)據(jù)對應(yīng)的鍵值被存入數(shù)據(jù)庫中的一個(gè)有序集合中,且每一鍵值對應(yīng)一個(gè)分?jǐn)?shù)值,所述分?jǐn)?shù)值為對應(yīng)鍵值在所述有序集合中的排序權(quán)重。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),包括: 獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值; 從所述分頁查詢數(shù)據(jù)對應(yīng)的各個(gè)分?jǐn)?shù)值中,查詢與所述第一分?jǐn)?shù)值相等的所有分?jǐn)?shù)值; 若所述所有分?jǐn)?shù)值中只有所述第一分?jǐn)?shù)值,則在所述有序集合中找到與所述第一分?jǐn)?shù)值對應(yīng)的所述第一鍵值; 若所述所有分?jǐn)?shù)值中至少有兩個(gè)分?jǐn)?shù)值,則依據(jù)對所述所有分?jǐn)?shù)值對應(yīng)鍵值的排序規(guī)則,從所述所有分?jǐn)?shù)值對應(yīng)鍵值中查找所述第一鍵值; 按照對所述有序集合中各個(gè)鍵值的排序,從所述第一鍵值開始,從所述有序集合中提取N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 服務(wù)器將所述前一查詢頁碼的數(shù)據(jù)返回給客戶端進(jìn)行顯示的同時(shí),將所述前一查詢頁碼的最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值返回給客戶端; 客戶端將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器的同時(shí),將所述第一鍵值和所述第一分?jǐn)?shù)值發(fā)送給服務(wù)器; 所述獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值,包括: 接收客戶端發(fā)送的所述第一鍵值和所述第一分?jǐn)?shù)值。5.根據(jù)權(quán)利要求2至4任一項(xiàng)所述的方法,其特征在于,所述按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),包括: 按照對所述有序集合中各個(gè)鍵值的排序,從第一個(gè)鍵值開始,從所述有序集合中提取前N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。6.一種分頁查詢系統(tǒng),其特征在于,包括客戶端和服務(wù)器; 所述客戶端,用于將當(dāng)前查詢頁碼的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器,N為大于或等于I的正整數(shù); 所述服務(wù)器,用于如果當(dāng)前查詢頁碼為第一頁,則按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從第一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示; 所述服務(wù)器,還用于如果當(dāng)前查詢頁碼不是第一頁,則從數(shù)據(jù)庫中找到當(dāng)前查詢頁碼的前一查詢頁碼中的最后一條數(shù)據(jù),按照數(shù)據(jù)庫中對分頁查詢數(shù)據(jù)的排序,從所述最后一條數(shù)據(jù)的下一條數(shù)據(jù)開始,從數(shù)據(jù)庫中提取N條數(shù)據(jù),并將提取的N條數(shù)據(jù)返回給客戶端進(jìn)行顯示。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述分頁查詢數(shù)據(jù)中的每一條數(shù)據(jù)以鍵值對的形式存儲在數(shù)據(jù)庫中,其中,每一條數(shù)據(jù)對應(yīng)的鍵值被存入數(shù)據(jù)庫中的一個(gè)有序集合中,且每一鍵值對應(yīng)一個(gè)分?jǐn)?shù)值,所述分?jǐn)?shù)值為對應(yīng)鍵值在所述有序集合中的排序權(quán)重。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述服務(wù)器包括: 數(shù)據(jù)分值獲取單元,用于如果當(dāng)前查詢頁碼不是第一頁,則獲取所述前一查詢頁碼中最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值; 相等分值查詢單元,用于從所述分頁查詢數(shù)據(jù)對應(yīng)的各個(gè)分?jǐn)?shù)值中,查詢與所述第一分?jǐn)?shù)值相等的所有分?jǐn)?shù)值; 第一鍵值查找單元,用于若所述所有分?jǐn)?shù)值中只有所述第一分?jǐn)?shù)值,則在所述有序集合中找到與所述第一分?jǐn)?shù)值對應(yīng)的所述第一鍵值; 所述第一鍵值查找單元,還用于若所述所有分?jǐn)?shù)值中至少有兩個(gè)分?jǐn)?shù)值,則依據(jù)對所述所有分?jǐn)?shù)值對應(yīng)鍵值的排序規(guī)則,從所述所有分?jǐn)?shù)值對應(yīng)鍵值中查找所述第一鍵值; 第一數(shù)據(jù)獲取單元,用于按照對所述有序集合中各個(gè)鍵值的排序,從所述第一鍵值開始,從所述有序集合中提取N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于, 所述服務(wù)器,還用于將所述前一查詢頁碼的數(shù)據(jù)返回給客戶端進(jìn)行顯示的同時(shí),將所述前一查詢頁碼的最后一條數(shù)據(jù)對應(yīng)的第一鍵值和第一分?jǐn)?shù)值返回給客戶端; 所述客戶端,還用于將當(dāng)前查詢頁碼對應(yīng)的數(shù)據(jù)條數(shù)N發(fā)送至服務(wù)器的同時(shí),將所述第一鍵值和所述第一分?jǐn)?shù)值發(fā)送給服務(wù)器; 所述數(shù)據(jù)分值獲取單元,具體用于接收客戶端發(fā)送的所述第一鍵值和所述第一分?jǐn)?shù)值。10.根據(jù)權(quán)利要求7至9任一項(xiàng)所述的系統(tǒng),其特征在于,所述服務(wù)器包括: 第二數(shù)據(jù)獲取單元,用于如果當(dāng)前查詢頁碼為第一頁,則按照對所述有序集合中各個(gè)鍵值的排序,從第一個(gè)鍵值開始,從所述有序集合中提取前N個(gè)鍵值,并從數(shù)據(jù)庫中獲取該N個(gè)鍵值分別對應(yīng)的N條數(shù)據(jù)。
【文檔編號】G06F17/30GK105843956SQ201610232341
【公開日】2016年8月10日
【申請日】2016年4月14日
【發(fā)明人】周淵斐
【申請人】北京搜狐新媒體信息技術(shù)有限公司