數(shù)據(jù)讀寫方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種數(shù)據(jù)讀寫方法及裝置。
【背景技術(shù)】
[0002]按照訪問接口、數(shù)據(jù)模型和性能的不同,目前主要的數(shù)據(jù)讀寫設(shè)備可分為兩類??關(guān)系數(shù)據(jù)庫(kù)與高速緩存。
[0003]關(guān)系數(shù)據(jù)庫(kù),以下簡(jiǎn)稱數(shù)據(jù)庫(kù)。是建立在關(guān)系數(shù)據(jù)庫(kù)模型基礎(chǔ)上的數(shù)據(jù)庫(kù),可借助于集合代數(shù)等概念和方法來處理該數(shù)據(jù)庫(kù)中的數(shù)據(jù)。一個(gè)數(shù)據(jù)庫(kù)通常包含預(yù)先定義的一組表,每個(gè)表代表一類數(shù)據(jù)。數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)是功能強(qiáng)大接口豐富,缺點(diǎn)是隨著數(shù)據(jù)量的增加和用戶數(shù)的增多,會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的性能變得很低,從而使得數(shù)據(jù)庫(kù)成為整個(gè)應(yīng)用系統(tǒng)的瓶頸。
[0004]高速緩存,以下簡(jiǎn)稱緩存。是指基于key-value (鍵值對(duì))的分布式存儲(chǔ)方案。目前主流緩存有memCaCheDB、T0ky0、RediS等。緩存的優(yōu)點(diǎn)是查詢速度快、存放數(shù)據(jù)量大以及支持高并發(fā)。通常為了避免數(shù)據(jù)庫(kù)成為整個(gè)應(yīng)用系統(tǒng)的瓶頸,一般都會(huì)使用緩存保存數(shù)據(jù)庫(kù)中的結(jié)果,應(yīng)用系統(tǒng)通過訪問緩存,減輕直接訪問數(shù)據(jù)庫(kù)而對(duì)數(shù)據(jù)庫(kù)造成的讀寫壓力和計(jì)算壓力,改善數(shù)據(jù)訪問性能,提高應(yīng)用系統(tǒng)的處理能力。但緩存的缺點(diǎn)是其數(shù)據(jù)結(jié)構(gòu)比較簡(jiǎn)單,只能支持簡(jiǎn)單的鍵值對(duì)的數(shù)據(jù)模型,無法支持帶有復(fù)雜條件的數(shù)據(jù)操作。
[0005]同時(shí)根據(jù)并發(fā)量、延遲以及請(qǐng)求復(fù)雜性的不同,數(shù)據(jù)讀寫設(shè)備的數(shù)據(jù)讀寫請(qǐng)求也可分為兩類:快速數(shù)據(jù)請(qǐng)求以及慢速數(shù)據(jù)請(qǐng)求。
[0006]快速數(shù)據(jù)請(qǐng)求,此類請(qǐng)求基本是查詢操作,查詢條件比較簡(jiǎn)單,根據(jù)互聯(lián)網(wǎng)的海量應(yīng)用尤其是社交應(yīng)用的海量數(shù)據(jù)生成。此類請(qǐng)求一般具有高并發(fā)低延遲的請(qǐng)求特點(diǎn),因此此類請(qǐng)求數(shù)據(jù)一般存儲(chǔ)于緩存中。
[0007]慢速數(shù)據(jù)請(qǐng)求,此類請(qǐng)求通常是帶有復(fù)雜條件的查詢操作,或者增加、刪除、修改操作,此類請(qǐng)求并發(fā)量不會(huì)很高,對(duì)延遲的要求也不是非常嚴(yán)格。因此此類請(qǐng)求的數(shù)據(jù)通常存儲(chǔ)于數(shù)據(jù)庫(kù)中,以利用數(shù)據(jù)庫(kù)強(qiáng)大豐富的SQL (結(jié)構(gòu)化查詢語言,Structured QueryLanguage)接口滿足各種復(fù)雜條件的數(shù)據(jù)請(qǐng)求。
[0008]請(qǐng)參照?qǐng)D1,圖1為現(xiàn)有的數(shù)據(jù)讀寫裝置的結(jié)構(gòu)示意圖。該數(shù)據(jù)讀寫裝置包括數(shù)據(jù)訪問中間層11、緩存12以及數(shù)據(jù)庫(kù)13。其中數(shù)據(jù)庫(kù)13用于處理慢速數(shù)據(jù)請(qǐng)求,緩存12用于處理快速數(shù)據(jù)請(qǐng)求,外圍應(yīng)用系統(tǒng)14通過數(shù)據(jù)訪問中間層11選擇訪問緩存12或數(shù)據(jù)庫(kù)13。
[0009]但現(xiàn)有的數(shù)據(jù)讀寫裝置存在以下缺點(diǎn):
[0010]一、外圍應(yīng)用系統(tǒng)14通過數(shù)據(jù)訪問中間層11訪問數(shù)據(jù)讀寫裝置時(shí),需要自行區(qū)分?jǐn)?shù)據(jù)請(qǐng)求的類型,將快速數(shù)據(jù)請(qǐng)求發(fā)送至緩存12,將慢速數(shù)據(jù)請(qǐng)求發(fā)送至數(shù)據(jù)庫(kù)13。外圍應(yīng)用系統(tǒng)14的開發(fā)人員必須了解數(shù)據(jù)讀寫裝置中數(shù)據(jù)庫(kù)13和緩存12的構(gòu)建情況,并根據(jù)該構(gòu)建情況對(duì)各種數(shù)據(jù)請(qǐng)求進(jìn)行區(qū)分,以將數(shù)據(jù)請(qǐng)求分發(fā)到相應(yīng)的數(shù)據(jù)庫(kù)13或緩存12中。這樣導(dǎo)致不易對(duì)數(shù)據(jù)請(qǐng)求服務(wù)的質(zhì)量進(jìn)行控制。
[0011]二、緩存12與數(shù)據(jù)庫(kù)13獨(dú)立工作,之間完全沒有關(guān)聯(lián)。當(dāng)外圍應(yīng)用系統(tǒng)14進(jìn)行數(shù)據(jù)請(qǐng)求調(diào)整(如將部分慢速數(shù)據(jù)請(qǐng)求調(diào)整為快速數(shù)據(jù)請(qǐng)求)時(shí),外圍應(yīng)用系統(tǒng)14的開發(fā)人員需要對(duì)待調(diào)整的數(shù)據(jù)在緩存12和數(shù)據(jù)庫(kù)13之間進(jìn)行數(shù)據(jù)遷移,并需要重新開發(fā)新的接口以滿足調(diào)整后的數(shù)據(jù)請(qǐng)求。導(dǎo)致外圍應(yīng)用系統(tǒng)14的開發(fā)人員重復(fù)勞動(dòng),影響了外圍應(yīng)用系統(tǒng)的服務(wù)質(zhì)量。
【發(fā)明內(nèi)容】
[0012]本發(fā)明實(shí)施例的目的在于提供一種數(shù)據(jù)讀寫方法,以解決現(xiàn)有的數(shù)據(jù)讀寫裝置及方法沒有基于數(shù)據(jù)庫(kù)與緩存不同特點(diǎn)來高效的處理各種不同類型的數(shù)據(jù)請(qǐng)求,使得外圍應(yīng)用系統(tǒng)接入到數(shù)據(jù)讀寫裝置的效率較低的技術(shù)問題。
[0013]本發(fā)明實(shí)施例的目的在于還提供一種數(shù)據(jù)讀寫裝置,以解決現(xiàn)有的數(shù)據(jù)讀寫裝置及方法沒有基于數(shù)據(jù)庫(kù)與緩存不同特點(diǎn)來高效的處理各種不同類型的數(shù)據(jù)請(qǐng)求,使得外圍應(yīng)用系統(tǒng)接入到數(shù)據(jù)讀寫裝置的效率較低的技術(shù)問題。
[0014]為解決上述問題,本發(fā)明提供的技術(shù)方案如下:
[0015]提供一種數(shù)據(jù)讀寫方法,其包括步驟:
[0016]接收外部應(yīng)用系統(tǒng)的數(shù)據(jù)操作請(qǐng)求,并對(duì)所述數(shù)據(jù)操作請(qǐng)求進(jìn)行預(yù)處理,以獲取所述數(shù)據(jù)操作請(qǐng)求的操作類型;
[0017]根據(jù)所述數(shù)據(jù)操作請(qǐng)求的操作類型以及與所述數(shù)據(jù)操作請(qǐng)求相應(yīng)的存儲(chǔ)設(shè)備,確定所述數(shù)據(jù)操作請(qǐng)求的操作設(shè)備;以及
[0018]根據(jù)所述數(shù)據(jù)操作請(qǐng)求,使用所述數(shù)據(jù)操作請(qǐng)求的操作設(shè)備進(jìn)行數(shù)據(jù)讀操作或?qū)懖僮鳌?br>[0019]還提供一種數(shù)據(jù)讀寫裝置,其包括:
[0020]類型獲取模塊,用于接收外部應(yīng)用系統(tǒng)的數(shù)據(jù)操作請(qǐng)求,并對(duì)所述數(shù)據(jù)操作請(qǐng)求進(jìn)行預(yù)處理,以獲取所述數(shù)據(jù)操作請(qǐng)求的操作類型;
[0021]操作設(shè)備確定模塊,用于根據(jù)所述數(shù)據(jù)操作請(qǐng)求的操作類型以及與所述數(shù)據(jù)操作請(qǐng)求相應(yīng)的存儲(chǔ)設(shè)備,確定所述數(shù)據(jù)操作請(qǐng)求的操作設(shè)備;以及
[0022]讀寫模塊,用于根據(jù)所述數(shù)據(jù)操作請(qǐng)求,使用所述數(shù)據(jù)操作請(qǐng)求的操作設(shè)備進(jìn)行數(shù)據(jù)讀操作或?qū)懖僮鳌?br>[0023]相較于現(xiàn)有技術(shù),本發(fā)明的數(shù)據(jù)讀寫方法及裝置,本發(fā)明的數(shù)據(jù)讀寫方法及裝置通過對(duì)數(shù)據(jù)操作請(qǐng)求的操作類型進(jìn)行自動(dòng)識(shí)別,然后根據(jù)識(shí)別結(jié)果自動(dòng)確定進(jìn)行數(shù)據(jù)讀操作或?qū)懖僮鞯牟僮髟O(shè)備,解決了現(xiàn)有的數(shù)據(jù)讀寫方法及裝置需要外圍應(yīng)用系統(tǒng)的開發(fā)人員對(duì)操作設(shè)備進(jìn)行區(qū)分,從而影響外圍應(yīng)用系統(tǒng)的服務(wù)質(zhì)量以及對(duì)外圍應(yīng)用系統(tǒng)的數(shù)據(jù)請(qǐng)求服務(wù)的質(zhì)量難以控制的技術(shù)問題。
【附圖說明】
[0024]圖1為現(xiàn)有的數(shù)據(jù)讀寫裝置的結(jié)構(gòu)示意圖;
[0025]圖2為本發(fā)明的數(shù)據(jù)讀寫裝置所在的電子設(shè)備的工作環(huán)境結(jié)構(gòu)示意圖;
[0026]圖3為本發(fā)明的數(shù)據(jù)讀寫裝置的第一優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖;
[0027]圖4為本發(fā)明的數(shù)據(jù)讀寫方法的第一優(yōu)選實(shí)施例的流程圖;
[0028]圖5A為本發(fā)明的數(shù)據(jù)讀寫裝置的第二優(yōu)選實(shí)施例的結(jié)構(gòu)示意圖;
[0029]圖5B為本發(fā)明的數(shù)據(jù)讀寫裝置的第二優(yōu)選實(shí)施例的格式轉(zhuǎn)換單元的結(jié)構(gòu)示意圖;
[0030]圖6為本發(fā)明的數(shù)據(jù)讀寫方法的第二優(yōu)選實(shí)施例的流程圖;
[0031]圖7為本發(fā)明的數(shù)據(jù)讀寫方法及裝置的具體實(shí)施例的流程圖。
【具體實(shí)施方式】
[0032]請(qǐng)參照?qǐng)D式,其中相同的組件符號(hào)代表相同的組件,本發(fā)明的原理是以實(shí)施在一適當(dāng)?shù)倪\(yùn)算環(huán)境中來舉例說明。以下的說明是基于所例示的本發(fā)明具體實(shí)施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實(shí)施例。
[0033]在以下的說明中,本發(fā)明的具體實(shí)施例將參考由一部或多部計(jì)算機(jī)所執(zhí)行之作業(yè)的步驟及符號(hào)來說明,除非另有述明。因此,其將可了解到這些步驟及操作,其中有數(shù)次提到為由計(jì)算機(jī)執(zhí)行,包括了由代表了以一結(jié)構(gòu)化型式中的數(shù)據(jù)之電子信號(hào)的計(jì)算機(jī)處理單元所操縱。此操縱轉(zhuǎn)換該數(shù)據(jù)或?qū)⑵渚S持在該計(jì)算機(jī)之內(nèi)存系統(tǒng)中的位置處,其可重新配置或另外以本領(lǐng)域技術(shù)人員所熟知的方式來改變?cè)撚?jì)算機(jī)之運(yùn)作。該數(shù)據(jù)所維持的數(shù)據(jù)結(jié)構(gòu)為該內(nèi)存之實(shí)體位置,其具有由該數(shù)據(jù)格式所定義的特定特性。但是,本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領(lǐng)域技術(shù)人員將可了解到以下所述的多種步驟及操作亦可實(shí)施在硬件當(dāng)中。
[0034]如本申請(qǐng)所使用的術(shù)語“組件”、“模塊”、“系統(tǒng)”、“接口 ”、“進(jìn)程”等等一般地旨在指計(jì)算機(jī)相關(guān)實(shí)體:硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。例如,組件可以是但不限于是運(yùn)行在處理器上的進(jìn)程、處理器、對(duì)象、可執(zhí)行應(yīng)用、執(zhí)行的線程、程序和/或計(jì)算機(jī)。通過圖示,運(yùn)行在控制器上的應(yīng)用和該控制器二者都可以是組件。一個(gè)或多個(gè)組件可以有在于執(zhí)行的進(jìn)程和/或線程內(nèi),并且組件可以位于一個(gè)計(jì)算機(jī)上和/或分布在兩個(gè)或更多計(jì)算機(jī)之間。
[0035]而且,要求保護(hù)的主題可以被實(shí)現(xiàn)為使用標(biāo)準(zhǔn)編程和/或工程技術(shù)產(chǎn)生軟件、固件、硬件或其任意組合以控制計(jì)算機(jī)實(shí)現(xiàn)所公開的主題的方法、裝置或制造品。本文所使用的術(shù)語“制造品”旨在包含可從任意計(jì)算機(jī)可讀設(shè)備、載體或介質(zhì)訪問的計(jì)算機(jī)程序。當(dāng)然,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到可以對(duì)該配置進(jìn)行許多修改,而不脫離要求保護(hù)的主題的范圍或精神。
[0036]圖2和隨后的討論提供了對(duì)實(shí)現(xiàn)本發(fā)明所述的數(shù)據(jù)讀寫裝置所在的電子設(shè)備的工作環(huán)境的簡(jiǎn)短、概括的描述。圖2的工作環(huán)境僅僅是適當(dāng)?shù)墓ぷ鳝h(huán)境的一個(gè)實(shí)例并且不旨在建議關(guān)于工作環(huán)境的用途或功能的范圍的任何限制。實(shí)例電子設(shè)備212包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、移動(dòng)設(shè)備(比如移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、媒體播放器等等)、多處理器系統(tǒng)、消費(fèi)型電子設(shè)備、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括上述任意系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境,等等。
[0037]盡管沒有要求,但是在“計(jì)算機(jī)可讀指令”被一個(gè)或多個(gè)電子設(shè)備執(zhí)行的通用背景下描述實(shí)施例。計(jì)算機(jī)可讀指令可以經(jīng)由計(jì)算機(jī)可讀介質(zhì)來分布(下文討論)。計(jì)算機(jī)可讀指令可以實(shí)現(xiàn)為程序模