国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的轉(zhuǎn)換方法及裝置的制造方法_2

      文檔序號(hào):9631562閱讀:來源:國(guó)知局
      述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
      [0053]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
      [0054]本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過于正式的含義來解釋。
      [0055]圖1為本發(fā)明中一個(gè)實(shí)施例的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的轉(zhuǎn)換方法的流程圖。
      [0056]步驟S110:提取基于原始鏈表存儲(chǔ)結(jié)構(gòu)的同一鏈表中各個(gè)待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)以及鏈表的鏈表標(biāo)識(shí),并將鏈表標(biāo)識(shí)及各個(gè)待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)分別進(jìn)行合并,以確定與各個(gè)待轉(zhuǎn)換數(shù)據(jù)相應(yīng)的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的鍵;步驟S120:提取與各個(gè)待轉(zhuǎn)換數(shù)據(jù)在鏈表中左右相鄰兩個(gè)數(shù)據(jù)中的位置標(biāo)識(shí)及各個(gè)待轉(zhuǎn)換數(shù)據(jù)中的value數(shù)據(jù)單元并將提取到的與各個(gè)待轉(zhuǎn)換數(shù)據(jù)在鏈表中左右相鄰兩個(gè)數(shù)據(jù)中的位置標(biāo)識(shí)與提取到的各個(gè)待轉(zhuǎn)換數(shù)據(jù)中的value數(shù)據(jù)單元分別進(jìn)行合并,以確定為各個(gè)待轉(zhuǎn)換數(shù)據(jù)的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的值;步驟S130:根據(jù)轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu),將鍵及值組成的數(shù)據(jù)鍵值對(duì)存儲(chǔ)至鍵值數(shù)據(jù)庫(kù)中。
      [0057]本發(fā)明的實(shí)施例中,提出了一種數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的轉(zhuǎn)換方案,通過將基于原始存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)轉(zhuǎn)換存儲(chǔ)為基于轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的數(shù)據(jù),實(shí)現(xiàn)對(duì)多種存儲(chǔ)數(shù)據(jù)類型以統(tǒng)一的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)的方式進(jìn)行數(shù)據(jù)存儲(chǔ)。進(jìn)一步的,將支持多種value類型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的Redis存儲(chǔ)系統(tǒng)中的多種數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù),轉(zhuǎn)存至僅支持無變形的鍵值對(duì)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)的LevelDB存儲(chǔ)系統(tǒng),實(shí)現(xiàn)了在保證較高的數(shù)據(jù)存儲(chǔ)處理效率的前提下,將受物理內(nèi)存限制的存儲(chǔ)方式轉(zhuǎn)換為以磁盤為數(shù)據(jù)存儲(chǔ)目標(biāo)的、不受物理內(nèi)存限制的存儲(chǔ)方式。通過本發(fā)明,最終可實(shí)現(xiàn)一種數(shù)據(jù)存儲(chǔ)處理效率較高、既支持多種類型的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)、又不受物理內(nèi)存限制的存儲(chǔ)系統(tǒng),由于該存儲(chǔ)系統(tǒng)可對(duì)多種數(shù)據(jù)結(jié)構(gòu)類型的海量數(shù)據(jù)進(jìn)行高效存儲(chǔ),從而使得本方案的數(shù)據(jù)存儲(chǔ)方式擁有較強(qiáng)的業(yè)務(wù)擴(kuò)展性。
      [0058]本實(shí)施例中,以原始鏈表存儲(chǔ)結(jié)構(gòu)為list類型鏈表數(shù)據(jù)結(jié)構(gòu)為例,該list類型鏈表為帶數(shù)據(jù)域的雙向鏈表結(jié)構(gòu),鏈表中的一個(gè)待轉(zhuǎn)換數(shù)據(jù)的結(jié)構(gòu)如圖5所示。
      [0059]其中,data代表該待轉(zhuǎn)換數(shù)據(jù)中的value數(shù)據(jù)單元,pr1r代表該待轉(zhuǎn)換數(shù)據(jù)的左邊相鄰數(shù)據(jù)的位置標(biāo)識(shí),next代表該待轉(zhuǎn)換數(shù)據(jù)的右相鄰數(shù)據(jù)的位置標(biāo)識(shí)。
      [0060]若list類型鏈表中存在3個(gè)待轉(zhuǎn)換數(shù)據(jù),即3個(gè)節(jié)點(diǎn),各待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)及結(jié)構(gòu)如圖6所示。
      [0061]其中,在該包括3個(gè)待轉(zhuǎn)換數(shù)據(jù)的鏈表中,第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)為1,value數(shù)據(jù)單元為a,左邊相鄰數(shù)據(jù)的位置標(biāo)識(shí)為_1,右相鄰數(shù)據(jù)的位置標(biāo)識(shí)為2 ;第二節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)為2,value數(shù)據(jù)單元為b,左邊相鄰數(shù)據(jù)的位置標(biāo)識(shí)為1,右相鄰數(shù)據(jù)的位置標(biāo)識(shí)為3 ;第三節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)為3,value數(shù)據(jù)單元為c,左邊相鄰數(shù)據(jù)的位置標(biāo)識(shí)為2,右相鄰數(shù)據(jù)的位置標(biāo)識(shí)為-1 ;其中,由于第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)不存在前節(jié)點(diǎn),即不存在左邊相鄰數(shù)據(jù)的位置標(biāo)識(shí),則設(shè)為-1,同理,第三節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)不存在后節(jié)點(diǎn),,即不存在右邊相鄰數(shù)據(jù)的位置標(biāo)識(shí),也設(shè)為-1。
      [0062]步驟S110:提取基于原始鏈表存儲(chǔ)結(jié)構(gòu)的同一鏈表中各個(gè)待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)以及鏈表的鏈表標(biāo)識(shí),并將鏈表標(biāo)識(shí)及各個(gè)待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)分別進(jìn)行合并,以確定與各個(gè)待轉(zhuǎn)換數(shù)據(jù)相應(yīng)的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的鍵。
      [0063]例如,提取如圖6的list類型鏈表數(shù)據(jù)結(jié)構(gòu)中各個(gè)待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)1、2、3以及該鏈表的鏈表標(biāo)識(shí)如K,并將鏈表標(biāo)識(shí)及各個(gè)待轉(zhuǎn)換數(shù)據(jù)的位置標(biāo)識(shí)分別進(jìn)行合并,以確定與各個(gè)待轉(zhuǎn)換數(shù)據(jù)相應(yīng)的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的鍵,如得到第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的鍵為K+1,第二節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的鍵為K+2,第三節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的鍵為K+3。
      [0064]步驟S120:提取與各個(gè)待轉(zhuǎn)換數(shù)據(jù)在鏈表中左右相鄰兩個(gè)數(shù)據(jù)中的位置標(biāo)識(shí)及各個(gè)待轉(zhuǎn)換數(shù)據(jù)中的value數(shù)據(jù)單元,并將提取到的與各個(gè)待轉(zhuǎn)換數(shù)據(jù)在鏈表中左右相鄰兩個(gè)數(shù)據(jù)中的位置標(biāo)識(shí)與提取到的各個(gè)待轉(zhuǎn)換數(shù)據(jù)中的value數(shù)據(jù)單元分別進(jìn)行合并,以確定為各個(gè)待轉(zhuǎn)換數(shù)據(jù)的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的值。
      [0065]例如,接上例,將提取到的與各個(gè)待轉(zhuǎn)換數(shù)據(jù)在鏈表中左右相鄰兩個(gè)數(shù)據(jù)中的位置標(biāo)識(shí),如第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的pr1r為-l、next為2,與提取到的如第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的value數(shù)據(jù)單元a進(jìn)行合并,以確定為第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu)中的值,即得到第一節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的值為“_l、2、a”;同理,第二節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的值為“ -1、3、b ”,第三節(jié)點(diǎn)的待轉(zhuǎn)換數(shù)據(jù)的值為“ 2、-1、c ”。
      [0066]步驟S130:根據(jù)轉(zhuǎn)換存儲(chǔ)結(jié)構(gòu),將鍵及值組成的數(shù)據(jù)鍵值對(duì)存儲(chǔ)至鍵值數(shù)據(jù)庫(kù)中。
      [0067]例如,接上例,將鍵及值合并組成數(shù)據(jù)鍵值對(duì),并將數(shù)據(jù)鍵值對(duì)“K+1- ‘_l、2、a’ ”、“K+2- ‘-l、3、b”lP“K+3- ‘2、-l、c’” 存儲(chǔ)至鍵值數(shù)據(jù)庫(kù)中。
      [0068]在一優(yōu)選實(shí)施例中,如圖2所示,該方法還包括步驟S210和步驟S220 ;步驟S210:確定鏈表中與原始鏈表存儲(chǔ)結(jié)構(gòu)相應(yīng)的結(jié)構(gòu)相關(guān)信息;步驟S220:將以預(yù)定的鏈表信息標(biāo)識(shí)為鍵、以結(jié)構(gòu)相關(guān)信息為值組成的結(jié)構(gòu)鍵值對(duì)與同一鏈表中的各個(gè)待轉(zhuǎn)換數(shù)據(jù)相關(guān)聯(lián)地存儲(chǔ)至鍵值數(shù)據(jù)庫(kù)中。
      [0069]其中,結(jié)構(gòu)相關(guān)信息具體包括但不限于:
      [0070]鏈表中的待轉(zhuǎn)換數(shù)據(jù)的數(shù)量;
      [0071 ] 鏈表中的下一可用的位置標(biāo)識(shí);
      [0072]鏈表的頭部數(shù)據(jù)的位置標(biāo)識(shí);
      [0073]鏈表的尾部數(shù)據(jù)的位置標(biāo)識(shí)。
      [0074]其中,預(yù)定的鏈表信息標(biāo)識(shí),至少包括:
      [0075]鏈表的鏈表標(biāo)識(shí);可變量標(biāo)識(shí)。如以“K”為鏈表的鏈表標(biāo)識(shí),“meta”為可變量標(biāo)識(shí)。
      [0076]例如,接上例,鏈表中與圖6所示的鏈表存儲(chǔ)結(jié)構(gòu)相應(yīng)的結(jié)構(gòu)相關(guān)信息包括:如鏈表中的待轉(zhuǎn)換數(shù)據(jù)的數(shù)量、鏈表中的下一可用的位置標(biāo)識(shí)、鏈表的頭部數(shù)據(jù)的位置標(biāo)識(shí)和鏈表的尾部數(shù)據(jù)的位置標(biāo)識(shí),根據(jù)圖6所示,可確定鏈表中的待轉(zhuǎn)換數(shù)據(jù)的數(shù)量為3,鏈表中的下一可用的位置標(biāo)識(shí)為4,鏈表的頭部數(shù)據(jù)的位置標(biāo)識(shí)為1,鏈表的尾部數(shù)據(jù)的位置標(biāo)識(shí)為3,以預(yù)定的鏈表信息標(biāo)識(shí)“KMta”為鍵,結(jié)構(gòu)相關(guān)信息“3,4,1,3”為值組成的結(jié)構(gòu)鍵值對(duì)“Kreta- ‘3,4,1,3’ ”與該鏈表中的各個(gè)待轉(zhuǎn)換數(shù)據(jù)相關(guān)聯(lián)地存儲(chǔ)至鍵值數(shù)據(jù)庫(kù)中。其中,結(jié)構(gòu)鍵值對(duì)與各個(gè)待轉(zhuǎn)換數(shù)據(jù)相關(guān)聯(lián)地方式為,結(jié)構(gòu)鍵值對(duì)的鍵“Kreta”中包括為元素“K”,各個(gè)待轉(zhuǎn)換數(shù)據(jù)的數(shù)據(jù)鍵值對(duì)“K+1- ‘_1、2、a’”、“K+2- ‘_1、3、b’”和“K+3- ‘2、_l、c’”的各個(gè)鍵“K+1 ”、“K+2”和“K+3”中均包括為元素“K”,其通過“K”可建立關(guān)聯(lián)關(guān)系。
      [0077]優(yōu)選地,該方法還包括:
      [0078]當(dāng)對(duì)任一待更新的數(shù)據(jù)鍵值對(duì)進(jìn)行更新操作時(shí),對(duì)與該待更新的數(shù)據(jù)鍵值在所述鏈表中左右相鄰的兩個(gè)數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)鍵值對(duì)進(jìn)行相應(yīng)更新;
      [0079]當(dāng)對(duì)任一待更新的數(shù)據(jù)鍵值對(duì)進(jìn)行更新操作時(shí),對(duì)與該待更新的數(shù)據(jù)鍵值對(duì)相關(guān)聯(lián)的結(jié)構(gòu)鍵值對(duì)進(jìn)行相應(yīng)更新。
      [0080]例如,接上例,在圖6所示的鏈表中的第二節(jié)點(diǎn)與第三節(jié)點(diǎn)中加入一新節(jié)點(diǎn),value數(shù)據(jù)單元為d,則第二節(jié)點(diǎn)的pr1r的位置標(biāo)識(shí),與第三節(jié)點(diǎn)的next的位置標(biāo)識(shí)會(huì)隨之發(fā)生變化,第二節(jié)點(diǎn)與第三節(jié)點(diǎn)相應(yīng)的數(shù)據(jù)鍵值對(duì)也需要進(jìn)行相應(yīng)的更新,原第二節(jié)點(diǎn)的數(shù)據(jù)鍵值對(duì)更新為“K+2- ‘l、4、b’
      ...
      當(dāng)前第2頁(yè)1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1