本發(fā)明實(shí)施例涉及數(shù)據(jù)處理的技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲(chǔ)和檢索的方法及裝置。
背景技術(shù):
在現(xiàn)實(shí)社會(huì)中,人與人的交流是通過(guò)人與人之間的介紹、握手來(lái)形成一個(gè)朋友圈、聯(lián)系圈的,每個(gè)人不需要直接認(rèn)識(shí)所有人,只需要通過(guò)他的朋友,朋友的朋友,就能促成一次握手。社交網(wǎng)站允許用戶在他們的網(wǎng)絡(luò)共享他們的想法、圖片、文章、活動(dòng)、事件。
內(nèi)容分發(fā)與訂閱是一項(xiàng)連接內(nèi)容消費(fèi)者與內(nèi)容生產(chǎn)者,同時(shí)創(chuàng)造出諸多供應(yīng)的商業(yè)模式如廣告、贊賞等的技術(shù)?;跁r(shí)效性的feed系統(tǒng)推拉模型是實(shí)現(xiàn)內(nèi)容分發(fā)與訂閱的一種有效手段。行業(yè)動(dòng)態(tài)已成為平臺(tái)吸引用戶、增加用戶黏性的重要手段。
使用傳統(tǒng)關(guān)系型的數(shù)據(jù)存儲(chǔ),“熱”數(shù)據(jù)的檢索和并發(fā)訪問(wèn)有較大局限性,對(duì)于有時(shí)效性要求的內(nèi)容服務(wù)來(lái)說(shuō),根據(jù)不同維度垂直細(xì)分并按照時(shí)間推進(jìn)順序聚合內(nèi)容更凸顯了這個(gè)局限性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提出一種數(shù)據(jù)存儲(chǔ)和檢索的方法及裝置,旨在解決如何提速“熱”數(shù)據(jù)的檢索和支持更大的并發(fā)的問(wèn)題。
為達(dá)此目的,本發(fā)明實(shí)施例采用以下技術(shù)方案:
第一方面,一種數(shù)據(jù)存儲(chǔ)和檢索的方法,所述方法包括:
根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);
基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);
根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。
優(yōu)選地,所述指定維度包括行業(yè)圈和朋友圈分別對(duì)應(yīng)有序集合。
優(yōu)選地,所述根據(jù)key-value模型設(shè)計(jì)內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)之后,還包括:
對(duì)外發(fā)布接口,所述接口用于實(shí)現(xiàn)對(duì)存儲(chǔ)內(nèi)容數(shù)據(jù)的維護(hù)、查詢,并提供完整的SNS交互功能。
優(yōu)選地,所述根據(jù)key-value模型設(shè)計(jì)內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)之后,還包括:
對(duì)外提供唯一指向索引。
優(yōu)選地,所述對(duì)外提供唯一指向索引,包括:
使用時(shí)間戳作為分值構(gòu)建有序集合sortedset,元素為所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中對(duì)應(yīng)的唯一索引值。
第二方面,一種數(shù)據(jù)存儲(chǔ)和檢索的裝置,所述裝置包括:
第一設(shè)置模塊,用于根據(jù)key-value模型設(shè)計(jì)內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);
第二設(shè)置模塊,用于基于不同的細(xì)分維度設(shè)計(jì)所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);
檢索模塊,用于根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。
優(yōu)選地,所述指定維度包括行業(yè)圈和朋友圈分別對(duì)應(yīng)有序集合。
優(yōu)選地,所述裝置還包括:
發(fā)布模塊,用于在根據(jù)key-value模型設(shè)計(jì)內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)之后,對(duì)外發(fā)布接口,所述接口用于實(shí)現(xiàn)對(duì)存儲(chǔ)內(nèi)容數(shù)據(jù)的維護(hù)、查詢,并提供完整的SNS交互功能。
優(yōu)選地,所述裝置還包括:
接口模塊,用于對(duì)外提供唯一指向索引。
優(yōu)選地,所述接口模塊,具體用于:使用時(shí)間戳作為分值構(gòu)建有序集合sortedset,元素為所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中對(duì)應(yīng)的唯一索引值。
本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的方法及裝置,根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。從而考慮到數(shù)據(jù)的時(shí)間越久越冷,越新越熱,會(huì)有cache的策略來(lái)提速“熱”數(shù)據(jù)的檢索和支持更大的并發(fā);并基于完整的可復(fù)用的cache結(jié)構(gòu)模型,細(xì)分不同的維度進(jìn)行cache,cache的內(nèi)容是按時(shí)間有序的,對(duì)于有時(shí)效性要求的內(nèi)容服務(wù)來(lái)說(shuō),可以根據(jù)不同維度(垂直細(xì)分)按照時(shí)間推進(jìn)順序聚合內(nèi)容。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的方法的流程示意圖;
圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)和檢索的方法的流程示意圖;
圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)和檢索的方法的流程示意圖;
圖4是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的裝置的功能模塊示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明實(shí)施例作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋本發(fā)明實(shí)施例,而非對(duì)本發(fā)明實(shí)施例的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明實(shí)施例相關(guān)的部分而非全部結(jié)構(gòu)。
參考圖1,圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的方法的流程示意圖。
如圖1所示,所述數(shù)據(jù)存儲(chǔ)和檢索的方法包括:
步驟101,根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);
步驟102,基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);
步驟103,根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。
其中,所述指定維度包括行業(yè)圈和朋友圈分別對(duì)應(yīng)有序集合。
具體的,Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。SortedSet(有序集合)是Redis提供的數(shù)據(jù)存儲(chǔ)方式的其中一種。
cache存儲(chǔ)模型結(jié)構(gòu)由七個(gè)部分組成:有序集合、動(dòng)態(tài)、圖片、轉(zhuǎn)發(fā)、評(píng)論、贊、收藏。整個(gè)結(jié)構(gòu)以有序集合部分為中心,有序集合部分由固定索引值(INDEX)指向;其他部分(動(dòng)態(tài)、圖片、轉(zhuǎn)發(fā)、評(píng)論、贊、收藏)由唯一可變的索引值(MSGID_SUFFIX)指向,MSGID為可變部分,SUFFIX為用于區(qū)分各部分的固定值;有序集合的組成元素為MSGID。
本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的方法,根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。從而考慮到數(shù)據(jù)的時(shí)間越久越冷,越新越熱,會(huì)有cache的策略來(lái)提速“熱”數(shù)據(jù)的檢索和支持更大的并發(fā);并基于完整的可復(fù)用的cache結(jié)構(gòu)模型,細(xì)分不同的維度進(jìn)行cache,cache的內(nèi)容是按時(shí)間有序的,對(duì)于有時(shí)效性要求的內(nèi)容服務(wù)來(lái)說(shuō),可以根據(jù)不同維度(垂直細(xì)分)按照時(shí)間推進(jìn)順序聚合內(nèi)容。
參考圖2,圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)和檢索的方法的流程示意圖。
如圖2所示,所述數(shù)據(jù)存儲(chǔ)和檢索的方法包括:
步驟201,根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);
步驟202,對(duì)外發(fā)布接口,所述接口用于實(shí)現(xiàn)對(duì)存儲(chǔ)內(nèi)容數(shù)據(jù)的維護(hù)、查詢,并提供完整的SNS交互功能;
步驟203,基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);
步驟204,根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。
其中,所述指定維度包括行業(yè)圈和朋友圈分別對(duì)應(yīng)有序集合。
具體的,數(shù)據(jù)流向首先從動(dòng)態(tài)服務(wù)開(kāi)始發(fā)布動(dòng)態(tài)/分享路況,發(fā)布內(nèi)容(包括圖片)使用前述cache存儲(chǔ)模型結(jié)構(gòu)進(jìn)行存儲(chǔ);動(dòng)態(tài)服務(wù)進(jìn)行評(píng)論、贊、收藏、轉(zhuǎn)發(fā),數(shù)據(jù)同樣使用前述cache存儲(chǔ)模型結(jié)構(gòu)進(jìn)行存儲(chǔ);動(dòng)態(tài)服務(wù)根據(jù)維度、時(shí)間區(qū)間等的條件可以獲取前述cache存儲(chǔ)模型中存儲(chǔ)的內(nèi)容數(shù)據(jù)。
參考圖3,圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)存儲(chǔ)和檢索的方法的流程示意圖。
如圖3所示,所述數(shù)據(jù)存儲(chǔ)和檢索的方法包括:
步驟301,根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);
步驟302,對(duì)外提供唯一指向索引;
優(yōu)選地,所述對(duì)外提供唯一指向索引,包括:
使用時(shí)間戳作為分值構(gòu)建有序集合sortedset,元素為所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中對(duì)應(yīng)的唯一索引值。
步驟303,基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);
步驟304,根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。
其中,所述指定維度包括行業(yè)圈和朋友圈分別對(duì)應(yīng)有序集合。
參考圖4,圖4是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的裝置的功能模塊示意圖。
如圖4所示,所述裝置包括:
第一設(shè)置模塊401,用于根據(jù)key-value模型設(shè)計(jì)內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);
第二設(shè)置模塊402,用于基于不同的細(xì)分維度設(shè)計(jì)所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);
檢索模塊403,用于根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。
優(yōu)選地,所述指定維度包括行業(yè)圈和朋友圈分別對(duì)應(yīng)有序集合。
優(yōu)選地,所述裝置還包括:
發(fā)布模塊,用于在根據(jù)key-value模型設(shè)計(jì)內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)之后,對(duì)外發(fā)布接口,所述接口用于實(shí)現(xiàn)對(duì)存儲(chǔ)內(nèi)容數(shù)據(jù)的維護(hù)、查詢,并提供完整的SNS交互功能。
優(yōu)選地,所述裝置還包括:
接口模塊,用于對(duì)外提供唯一指向索引。
優(yōu)選地,所述接口模塊,具體用于:使用時(shí)間戳作為分值構(gòu)建有序集合sortedset,元素為所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中對(duì)應(yīng)的唯一索引值。
本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)和檢索的裝置,根據(jù)key-value模型設(shè)置內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),所述key-value模型的基本存儲(chǔ)單元用于存儲(chǔ)“熱”數(shù)據(jù);基于不同的細(xì)分維度設(shè)置所述數(shù)據(jù)存儲(chǔ)結(jié)構(gòu);根據(jù)指定維度和時(shí)間區(qū)間完成對(duì)數(shù)據(jù)的聚合和檢索。從而考慮到數(shù)據(jù)的時(shí)間越久越冷,越新越熱,會(huì)有cache的策略來(lái)提速“熱”數(shù)據(jù)的檢索和支持更大的并發(fā);并基于完整的可復(fù)用的cache結(jié)構(gòu)模型,細(xì)分不同的維度進(jìn)行cache,cache的內(nèi)容是按時(shí)間有序的,對(duì)于有時(shí)效性要求的內(nèi)容服務(wù)來(lái)說(shuō),可以根據(jù)不同維度(垂直細(xì)分)按照時(shí)間推進(jìn)順序聚合內(nèi)容。
以上結(jié)合具體實(shí)施例描述了本發(fā)明實(shí)施例的技術(shù)原理。這些描述只是為了解釋本發(fā)明實(shí)施例的原理,而不能以任何方式解釋為對(duì)本發(fā)明實(shí)施例保護(hù)范圍的限制?;诖颂幍慕忉?zhuān)绢I(lǐng)域的技術(shù)人員不需要付出創(chuàng)造性的勞動(dòng)即可聯(lián)想到本發(fā)明實(shí)施例的其它具體實(shí)施方式,這些方式都將落入本發(fā)明實(shí)施例的保護(hù)范圍之內(nèi)。