国产精品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ù)緩存裝置及方法_4

      文檔序號(hào):9551299閱讀:來(lái)源:國(guó)知局
      數(shù)據(jù)緩存裝置的第三實(shí)施例的功能模塊示意圖?;谏鲜鰯?shù)據(jù)緩存裝置的第一實(shí)施例,所述存儲(chǔ)模塊30包括第一轉(zhuǎn)換單元31、提取單元32和第二轉(zhuǎn)換單元33 ;
      [0123]所述第一轉(zhuǎn)換單元31,用于從原數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),并將所述原數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)的對(duì)象;
      [0124]所述提取單元32,用于從所述原數(shù)據(jù)庫(kù)的對(duì)象中提取所述接口對(duì)應(yīng)的對(duì)象;
      [0125]所述第二轉(zhuǎn)換單元33,用于將所提取的對(duì)象轉(zhuǎn)換為所述接口對(duì)應(yīng)的數(shù)據(jù),并將所述接口對(duì)應(yīng)的數(shù)據(jù)返回給所述客戶端。
      [0126]所述數(shù)據(jù)緩存裝置從原數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),并將所述原數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換為所述原數(shù)據(jù)庫(kù)的數(shù)據(jù)對(duì)應(yīng)的對(duì)象;所述數(shù)據(jù)緩存裝置從所述原數(shù)據(jù)庫(kù)的對(duì)象中提取所述接口對(duì)應(yīng)的對(duì)象;所述數(shù)據(jù)緩存裝置將所提取的對(duì)象轉(zhuǎn)換為所述接口對(duì)應(yīng)的數(shù)據(jù),并將所述接口對(duì)應(yīng)的數(shù)據(jù)返回給所述客戶端。
      [0127]例如:所述數(shù)據(jù)緩存裝置讀取MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù),將讀取的數(shù)據(jù)轉(zhuǎn)換為V0對(duì)象,從V0對(duì)象中取出客戶端需要的數(shù)據(jù)對(duì)象,將取出的數(shù)據(jù)對(duì)象轉(zhuǎn)換為字符串?dāng)?shù)據(jù),將所述字符串?dāng)?shù)據(jù)返回給所述客戶端。
      [0128]本實(shí)施例將所述接口對(duì)應(yīng)的數(shù)據(jù)作為緩存值保存在緩存數(shù)據(jù)庫(kù)中,使得在客戶端調(diào)用接口讀取數(shù)據(jù)時(shí),能夠從緩存數(shù)據(jù)庫(kù)中直接讀取到所述接口對(duì)應(yīng)的數(shù)據(jù),避免了將緩存數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換為對(duì)象以查找所述接口對(duì)應(yīng)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換過(guò)程,極大的提高了數(shù)據(jù)讀取的效率,并提高了系統(tǒng)的運(yùn)行效率。
      [0129]參照?qǐng)D9,圖9為本發(fā)明數(shù)據(jù)緩存裝置的第四實(shí)施例的功能模塊示意圖?;谏鲜鰯?shù)據(jù)緩存裝置的第一實(shí)施例,所述生成模塊10包括確定單元11、獲取單元12和生成單元13 ;
      [0130]所述確定單元11,用于在客戶端通過(guò)接口讀取數(shù)據(jù)時(shí),確定所述接口對(duì)應(yīng)的參數(shù)類(lèi);
      [0131]所述獲取單元12,用于獲取所述參數(shù)類(lèi)的類(lèi)名和參數(shù)值;
      [0132]所述生成單元13,用于根據(jù)所述類(lèi)名和所述參數(shù)值生成所述接口對(duì)應(yīng)的緩存鍵。
      [0133]在客戶端通過(guò)接口讀取數(shù)據(jù)時(shí),所述數(shù)據(jù)緩存裝置確定所述接口對(duì)應(yīng)的參數(shù)類(lèi),所述參數(shù)類(lèi)與所述接口唯一對(duì)應(yīng),即每個(gè)接口的參數(shù)類(lèi)是唯一存在的;所述數(shù)據(jù)緩存裝置獲取所述參數(shù)類(lèi)的類(lèi)名和參數(shù)值,并根據(jù)所述類(lèi)名和所述參數(shù)值生成所述接口唯一對(duì)應(yīng)的緩存鍵,即所述接口與所述緩存鍵的對(duì)應(yīng)關(guān)系是一對(duì)一的。
      [0134]具體的,緩存鍵的生成規(guī)則可以按如下設(shè)置:參數(shù)類(lèi)名,ID項(xiàng)參數(shù)的值,非ID項(xiàng)參數(shù)的值。例如,獲取應(yīng)用評(píng)論的接口,其表單類(lèi)為SearchCommentForm,參數(shù)為softltemld、pageNo和pageSize。通過(guò)注解設(shè)置softltemld為緩存鍵生成規(guī)則中的ID項(xiàng),將其排在緩存鍵特征的最前面;其余參數(shù)則按照哈希表中的哈希規(guī)則進(jìn)行排序。如果有多個(gè)ID項(xiàng)的參數(shù),其在緩存鍵特征中的排序也是按照哈希表的哈希規(guī)則。保證了相同參數(shù)的同個(gè)接口與所生成的緩存鍵是唯一對(duì)應(yīng)的。如softltemld為298689,pageNo為1,pageSize為100,則生成的緩存鍵為 “SearchCommentForm,298689,20,1 ”。
      [0135]通過(guò)接口的參數(shù)類(lèi)來(lái)生成緩存鍵,可以保證緩存鍵的唯一性,而且在其它客戶端需要更新緩存時(shí),也能夠方便的通過(guò)設(shè)置參數(shù)類(lèi)的參數(shù),生成對(duì)應(yīng)的緩存鍵,來(lái)操作需要更新的緩存數(shù)據(jù)。
      [0136]本實(shí)施例根據(jù)客戶端讀取數(shù)據(jù)時(shí)調(diào)用的接口生成對(duì)應(yīng)的緩存鍵,同時(shí),將所述接口對(duì)應(yīng)的數(shù)據(jù)作為緩存值保存在緩存數(shù)據(jù)庫(kù)中,采用這種方式進(jìn)行數(shù)據(jù)緩存,將接口的參數(shù)表單類(lèi)與緩存鍵唯一對(duì)應(yīng),提高了緩存鍵的生成效率,方便了不同客戶端對(duì)同一緩存的更新。同時(shí)使得在客戶端調(diào)用接口讀取數(shù)據(jù)時(shí),能夠從緩存數(shù)據(jù)庫(kù)中直接讀取到所述接口對(duì)應(yīng)的數(shù)據(jù),避免了將緩存數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換為對(duì)象以查找所述接口對(duì)應(yīng)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換過(guò)程,極大的提高了數(shù)據(jù)讀取的效率,并提高了系統(tǒng)的運(yùn)行效率。
      [0137]本發(fā)明進(jìn)一步提供一種數(shù)據(jù)緩存方法。
      [0138]參照?qǐng)D10,圖10為本發(fā)明數(shù)據(jù)緩存方法的第一實(shí)施例的流程示意圖。
      [0139]在本實(shí)施例中,所述數(shù)據(jù)緩存方法包括:
      [0140]步驟S10,在客戶端通過(guò)接口讀取數(shù)據(jù)時(shí),根據(jù)所述接口的接口信息生成緩存鍵;
      [0141]所述接口為客戶端與服務(wù)器交互的方法的統(tǒng)稱(chēng),客戶端可以通過(guò)所述接口與服務(wù)器進(jìn)行交互,參照?qǐng)D4,圖4為本發(fā)明中客戶端通過(guò)接口與服務(wù)器交互示意圖,本發(fā)明的數(shù)據(jù)緩存裝置設(shè)置在所述服務(wù)器內(nèi)。所述客戶端可以為移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、個(gè)人數(shù)字助理、平板電腦、便攜式多媒體播放器、導(dǎo)航裝置等等的移動(dòng)終端或者諸如數(shù)字TV、臺(tái)式計(jì)算機(jī)等等的固定終端。
      [0142]在客戶端通過(guò)接口讀取數(shù)據(jù)時(shí),所述數(shù)據(jù)緩存裝置根據(jù)所調(diào)用接口的接口信息生成對(duì)應(yīng)的緩存鍵,所述緩存鍵與所述接口對(duì)應(yīng),使得客戶端通過(guò)同一接口讀取的數(shù)據(jù)是唯一的。所述數(shù)據(jù)緩存裝置可以在客戶端通過(guò)接口讀取數(shù)據(jù)時(shí),通過(guò)切面進(jìn)行攔截,以進(jìn)行緩存處理。例如:所述數(shù)據(jù)緩存裝置可以在監(jiān)測(cè)到客戶端通過(guò)接口發(fā)送的數(shù)據(jù)讀取請(qǐng)求時(shí),通過(guò)切面進(jìn)行攔截,以進(jìn)入緩存處理的過(guò)程。
      [0143]所述接口的接口信息,可以是所述接口的參數(shù)類(lèi)的類(lèi)名和參數(shù)值。
      [0144]步驟S20,在緩存數(shù)據(jù)庫(kù)中查找所述緩存鍵對(duì)應(yīng)的緩存值;
      [0145]所述數(shù)據(jù)緩存裝置在緩存數(shù)據(jù)庫(kù)中查找所述緩存鍵對(duì)應(yīng)的緩存值,以將所查找到的緩存值返回給所述客戶端,若緩存數(shù)據(jù)庫(kù)中無(wú)對(duì)應(yīng)的緩存值,才從原數(shù)據(jù)庫(kù)中讀取對(duì)應(yīng)的數(shù)據(jù),提高系統(tǒng)效率。
      [0146]步驟S30,若未查找到對(duì)應(yīng)的緩存值,則從原數(shù)據(jù)庫(kù)讀取所述接口對(duì)應(yīng)的數(shù)據(jù)返回給所述客戶端,并將返回的數(shù)據(jù)作為所述緩存值保存至所述緩存數(shù)據(jù)庫(kù)。
      [0147]所述數(shù)據(jù)緩存裝置若未查找到對(duì)應(yīng)的緩存值,則從原數(shù)據(jù)庫(kù)中讀取所述接口對(duì)應(yīng)的數(shù)據(jù),將所述接口對(duì)應(yīng)的數(shù)據(jù)返回給所述客戶端,并將所述接口對(duì)應(yīng)的數(shù)據(jù)作為所述緩存鍵對(duì)應(yīng)的緩存值保存在所述緩存數(shù)據(jù)庫(kù)中。參照?qǐng)D5,圖5為本發(fā)明中客戶端讀取緩存數(shù)據(jù)的效果示意圖,通過(guò)直接保存接口返回給客戶端的數(shù)據(jù),使得讀取該緩存數(shù)據(jù)時(shí),根據(jù)緩存鍵即可讀取到對(duì)應(yīng)的數(shù)據(jù)返回給客戶端,無(wú)需將緩存數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換為對(duì)象,以查找對(duì)應(yīng)的數(shù)據(jù)對(duì)象,再將查找到的數(shù)據(jù)對(duì)象轉(zhuǎn)換為數(shù)據(jù)返回給客戶端的處理過(guò)程,提高了系統(tǒng)效率,參照?qǐng)D6,圖6為傳統(tǒng)讀取緩存數(shù)據(jù)的效果示意圖。
      [0148]所述數(shù)據(jù)緩存裝置若查找到對(duì)應(yīng)的緩存值,則可以將所述緩存值返回給所述客戶端;或者,所述數(shù)據(jù)緩存裝置還可以對(duì)所述緩存值是否有效進(jìn)行判斷,將有效的緩存值返回給所述客戶端,對(duì)無(wú)效的緩存值進(jìn)行更新。
      [0149]本實(shí)施例根據(jù)客戶端讀取數(shù)據(jù)時(shí)調(diào)用的接口生成對(duì)應(yīng)的緩存鍵,同時(shí),將所述接口對(duì)應(yīng)的數(shù)據(jù)作為緩存值保存在緩存數(shù)據(jù)庫(kù)中,采用這種方式進(jìn)行數(shù)據(jù)緩存,使得在客戶端調(diào)用接口讀取數(shù)據(jù)時(shí),能夠從緩存數(shù)據(jù)庫(kù)中直接讀取到所述接口對(duì)應(yīng)的數(shù)據(jù),避免了將緩存數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換為對(duì)象以查找所述接口對(duì)應(yīng)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換過(guò)程,極大的提高了數(shù)據(jù)讀取的效率,并提高了系統(tǒng)的運(yùn)行效率。同時(shí)根據(jù)客戶端的行為進(jìn)行對(duì)應(yīng)數(shù)據(jù)的緩存,避免了將原數(shù)據(jù)庫(kù)中的全部數(shù)據(jù)映射到緩存數(shù)據(jù)庫(kù)中,減小了占用的內(nèi)存空間,降低了成本。
      [0150]參照?qǐng)D11,圖11為本發(fā)明數(shù)據(jù)緩存方法的第二實(shí)施例的流程示意圖?;谏鲜鰯?shù)據(jù)緩存方法的第一實(shí)施例,所述步驟S20之后,還包括:
      [0151]步驟S40,若查找到對(duì)應(yīng)的緩存值,則判斷所述緩存值是否有效;
      [0152]所述數(shù)據(jù)緩存裝置若查找到所述緩存鍵對(duì)應(yīng)的緩存值,則判斷所述緩存值是否有效,若所述緩存值有效,則將所述緩存值返回給客戶端,若所述緩存值已無(wú)效,則對(duì)所述緩存值進(jìn)行更新,將更新后的數(shù)據(jù)返回給客戶端。
      [0153]所述數(shù)據(jù)緩存裝置可以在保存所述緩存值時(shí),啟動(dòng)對(duì)應(yīng)的計(jì)時(shí)器進(jìn)行計(jì)時(shí),在所述緩存值的存儲(chǔ)時(shí)間達(dá)到預(yù)設(shè)的有效時(shí)間時(shí),將所述緩存值設(shè)置為無(wú)效,以在所述數(shù)據(jù)緩存裝置超過(guò)預(yù)設(shè)的有效時(shí)間調(diào)用接口讀取所述緩存值時(shí),對(duì)所述緩存值進(jìn)行更新。例如:所述有效時(shí)間可以設(shè)置為半小時(shí),在所述數(shù)據(jù)緩存裝置將所述緩存鍵和所述緩存值保存至緩存數(shù)據(jù)庫(kù)之后,若客戶端在半小時(shí)的有效時(shí)間內(nèi)讀取所述緩存值,則所述數(shù)據(jù)緩存裝置根據(jù)對(duì)應(yīng)的接口直接讀取對(duì)應(yīng)的緩存值返回給客戶端;若客戶端在半小時(shí)的有效時(shí)間之后讀取所述緩存值,則所述數(shù)據(jù)緩存裝置從原數(shù)據(jù)庫(kù)中讀取對(duì)應(yīng)的數(shù)據(jù)返回給客戶端,并對(duì)已失效的緩存值進(jìn)行更新。
      [0154]具體的,參照?qǐng)D12,圖12為本發(fā)明中判斷所述緩存值是否有效的步驟較佳實(shí)施例的流程示意圖,所述判斷所述緩存值是否有效的步驟包括:
      [0155]步驟S41,判斷所述緩存值的存儲(chǔ)時(shí)間是否達(dá)到預(yù)設(shè)的時(shí)間閾值;
      [0156]步驟S42,若所述保存時(shí)間小于所述時(shí)間閾值,則判定所述緩存值有效;
      [0157]步驟S43,若所述保存時(shí)間大于或等于所述時(shí)間閾值,則判定所述緩存值已無(wú)效。
      [0158]所述時(shí)間閾值用于判斷對(duì)應(yīng)的緩存值是否有效,可以根據(jù)用戶需要進(jìn)行具體設(shè)置,可以默認(rèn)設(shè)置為半小時(shí)。所述數(shù)據(jù)緩存裝置判斷所述緩存值的存儲(chǔ)時(shí)間是否達(dá)到預(yù)設(shè)的時(shí)間閾值;若所述保存時(shí)間小于所述時(shí)間閾值,則判定所述緩存值有效,所述數(shù)據(jù)緩存裝置讀取所述有效的緩存值,并將所述緩存值返回給客戶端;若所述保存時(shí)間大于或等于所述時(shí)間閾值,則判定所述緩存值已無(wú)效,所述數(shù)據(jù)緩存裝置從原數(shù)據(jù)庫(kù)中讀取所述接口對(duì)應(yīng)的數(shù)據(jù)返回給客戶端,并對(duì)已失效的緩存值進(jìn)行更新。
      [0159]步驟S50,若有效,則將所述緩存值返回給所述客戶端;
      [0160]步驟S60,若無(wú)效,則從原數(shù)據(jù)庫(kù)讀取所述接口對(duì)應(yīng)的數(shù)據(jù)返回給所述客戶端,并用返回的數(shù)據(jù)替換已無(wú)效的緩存值保存至所述緩存數(shù)據(jù)庫(kù)。
      [0161]由于保存緩存值時(shí),將接口對(duì)應(yīng)的數(shù)據(jù)作為緩存值保存在緩存數(shù)據(jù)庫(kù)中,因此從緩存數(shù)據(jù)庫(kù)中讀取到所述有效的緩存值時(shí),可以直接將所述緩存值返回至客戶端。若對(duì)應(yīng)的緩存值已無(wú)效,則從原數(shù)據(jù)庫(kù)中讀取所述接口對(duì)應(yīng)的數(shù)據(jù),將所述接口對(duì)應(yīng)的數(shù)據(jù)作為新的緩存值替換已失效的緩存值。
      [0162]本實(shí)施例基于緩存值的存儲(chǔ)時(shí)間對(duì)緩存數(shù)據(jù)進(jìn)行有效性的設(shè)置,在對(duì)應(yīng)的緩存值達(dá)到
      當(dāng)前第4頁(yè)1 2 3 4 5 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1