一種更新網(wǎng)站數(shù)據(jù)緩存的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)站數(shù)據(jù)緩存技術(shù),尤其涉及一種更新網(wǎng)站數(shù)據(jù)緩存的裝置及方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的高速發(fā)展,大型網(wǎng)站承擔(dān)的訪問負(fù)載越來越重。網(wǎng)站數(shù)據(jù)緩存技術(shù)已經(jīng)成為網(wǎng)站的一個(gè)關(guān)鍵性支撐技術(shù)。數(shù)據(jù)緩存技術(shù)主要指:網(wǎng)站服務(wù)器將從數(shù)據(jù)庫(kù)中查詢出的數(shù)據(jù)集合放入緩存中,下次如果再執(zhí)行這個(gè)查詢,將直接從緩存中返回這個(gè)數(shù)據(jù)集合,不需要再進(jìn)行數(shù)據(jù)庫(kù)的查詢,同時(shí)可以配置緩存更新策略。
[0003]數(shù)據(jù)緩存技術(shù)主要用于緩解網(wǎng)站服務(wù)器數(shù)據(jù)庫(kù)的壓力,提高網(wǎng)站服務(wù)器的穩(wěn)定性和并發(fā)能力等。緩存策略使用是否得當(dāng),直接關(guān)系網(wǎng)站的訪問速度、影響用戶體驗(yàn),進(jìn)而影響服務(wù)器集群的規(guī)模及購(gòu)置服務(wù)器的數(shù)量等。
[0004]當(dāng)前一般緩存更新策略是采用設(shè)定更新周期的方法:網(wǎng)站服務(wù)器查詢數(shù)據(jù)集合寫入緩存時(shí)記錄時(shí)間;下次查詢時(shí),檢查緩存時(shí)間是否已過期,如果沒過期,就直接從緩存返回?cái)?shù)據(jù)集合,如果過期,則執(zhí)行數(shù)據(jù)庫(kù)查詢,并更新緩存。這種緩存更新策略在網(wǎng)站運(yùn)行期間一般保持不變。在使用數(shù)據(jù)緩存時(shí),網(wǎng)站數(shù)據(jù)改變后,用戶要到下個(gè)更新周期才能看到新內(nèi)容。如果周期過長(zhǎng),必然影響用戶體驗(yàn);如果周期過短,緩存的效果減弱,必然增加數(shù)據(jù)庫(kù)查詢壓力,嚴(yán)重時(shí)將造成網(wǎng)站服務(wù)器故障。
【發(fā)明內(nèi)容】
[0005]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種更新網(wǎng)站數(shù)據(jù)緩存的裝置及方法。
[0006]本發(fā)明實(shí)施例提供的更新網(wǎng)站數(shù)據(jù)緩存的裝置包括:
[0007]采集單元,用于采集當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載;
[0008]計(jì)算單元,用于根據(jù)所述當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載,計(jì)算得到當(dāng)前的緩存周期;
[0009]更新單元,用于按照所述當(dāng)前的緩存周期更新所述網(wǎng)站的緩存數(shù)據(jù)。
[0010]本發(fā)明實(shí)施例中,所述裝置還包括:
[0011]設(shè)置單元,用于根據(jù)所述當(dāng)前網(wǎng)站的訪問量,設(shè)置以下閾值:最小訪問量閾值、最大訪問量閾值、最小緩存周期閾值、最大緩存周期閾值。
[0012]本發(fā)明實(shí)施例中,所述計(jì)算單元,還用于當(dāng)所述當(dāng)前網(wǎng)站的訪問量大于或等于所述最大訪問量閾值時(shí),將所述最大緩存周期閾值設(shè)置為所述當(dāng)前的緩存周期;當(dāng)所述當(dāng)前網(wǎng)站的訪問量小于或等于所述最小訪問量閾值時(shí),將所述最小緩存周期閾值設(shè)置為所述當(dāng)前的緩存周期。
[0013]本發(fā)明實(shí)施例中,所述設(shè)置單元,還用于當(dāng)所述當(dāng)前網(wǎng)站的訪問量大于所述最小訪問量閾值,且小于所述最大訪問量閾值時(shí),為數(shù)據(jù)庫(kù)負(fù)載設(shè)置最優(yōu)穩(wěn)定值。
[0014]本發(fā)明實(shí)施例中,所述計(jì)算單元,還用于以所述當(dāng)前的數(shù)據(jù)庫(kù)負(fù)載與所述最優(yōu)穩(wěn)定值的差值為依據(jù),根據(jù)比例-積分-微分(PID,Proport1n Integrat1nDifferentiat1n)算法計(jì)算得到所述當(dāng)前的緩存周期。
[0015]本發(fā)明實(shí)施例提供的更新網(wǎng)站數(shù)據(jù)緩存的方法包括:
[0016]采集當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載;
[0017]根據(jù)所述當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載,計(jì)算得到當(dāng)前的緩存周期;
[0018]按照所述當(dāng)前的緩存周期更新所述網(wǎng)站的緩存數(shù)據(jù)。
[0019]本發(fā)明實(shí)施例中,所述方法還包括:
[0020]根據(jù)所述當(dāng)前網(wǎng)站的訪問量,設(shè)置以下閾值:最小訪問量閾值、最大訪問量閾值、最小緩存周期閾值、最大緩存周期閾值。
[0021]本發(fā)明實(shí)施例中,所述根據(jù)所述當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載,計(jì)算得到當(dāng)前的緩存周期,包括:
[0022]當(dāng)所述當(dāng)前網(wǎng)站的訪問量大于或等于所述最大訪問量閾值時(shí),將所述最大緩存周期閾值設(shè)置為所述當(dāng)前的緩存周期;
[0023]當(dāng)所述當(dāng)前網(wǎng)站的訪問量小于或等于所述最小訪問量閾值時(shí),將所述最小緩存周期閾值設(shè)置為所述當(dāng)前的緩存周期。
[0024]本發(fā)明實(shí)施例中,所述方法還包括:
[0025]當(dāng)所述當(dāng)前網(wǎng)站的訪問量大于所述最小訪問量閾值,且小于所述最大訪問量閾值時(shí),為數(shù)據(jù)庫(kù)負(fù)載設(shè)置最優(yōu)穩(wěn)定值。
[0026]本發(fā)明實(shí)施例中,所述根據(jù)所述當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載,計(jì)算得到當(dāng)前的緩存周期,包括:
[0027]以所述當(dāng)前的數(shù)據(jù)庫(kù)負(fù)載與所述最優(yōu)穩(wěn)定值的差值為依據(jù),根據(jù)PID算法計(jì)算得到所述當(dāng)前的緩存周期。
[0028]本發(fā)明實(shí)施例的技術(shù)方案中,通過實(shí)時(shí)采集網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載,計(jì)算得到當(dāng)前的緩存周期,按照所述當(dāng)前的緩存周期更新所述網(wǎng)站的緩存數(shù)據(jù)。從而實(shí)現(xiàn)了根據(jù)網(wǎng)站的實(shí)時(shí)狀況,動(dòng)態(tài)地調(diào)整緩存周期。如此,當(dāng)數(shù)據(jù)庫(kù)為低負(fù)載時(shí),適當(dāng)降低了緩存周期更新緩存數(shù)據(jù),優(yōu)化了用戶體驗(yàn)。當(dāng)數(shù)據(jù)庫(kù)為高負(fù)載時(shí),適當(dāng)提高了緩存周期更新緩存數(shù)據(jù),保障了網(wǎng)站服務(wù)器的穩(wěn)定性。并且,緩存周期的微調(diào)采用PID算法,穩(wěn)定可靠。
【附圖說明】
[0029]圖1為本發(fā)明實(shí)施例一的更新網(wǎng)站數(shù)據(jù)緩存的方法的流程示意圖;
[0030]圖2為本發(fā)明實(shí)施例二的更新網(wǎng)站數(shù)據(jù)緩存的方法的流程示意圖;
[0031]圖3為本發(fā)明實(shí)施例一的更新網(wǎng)站數(shù)據(jù)緩存的裝置的結(jié)構(gòu)組成示意圖;
[0032]圖4為本發(fā)明實(shí)施例二的更新網(wǎng)站數(shù)據(jù)緩存的裝置的結(jié)構(gòu)組成示意圖;
[0033]圖5為本發(fā)明實(shí)施例的交互示意圖一;
[0034]圖6為本發(fā)明實(shí)施例的交互示意圖二 ;
[0035]圖7為本發(fā)明實(shí)施例的網(wǎng)站系統(tǒng)的框架示意圖。
【具體實(shí)施方式】
[0036]為了能夠更加詳盡地了解本發(fā)明實(shí)施例的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說明之用,并非用來限定本發(fā)明實(shí)施例。
[0037]圖1為本發(fā)明實(shí)施例一的更新網(wǎng)站數(shù)據(jù)緩存的方法的流程示意圖,本示例中的更新網(wǎng)站數(shù)據(jù)緩存的方法應(yīng)用于更新網(wǎng)站數(shù)據(jù)緩存的裝置中,如圖1所示,所述更新網(wǎng)站數(shù)據(jù)緩存的方法包括以下步驟:
[0038]步驟101:采集當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載。
[0039]具體地,由更新網(wǎng)站數(shù)據(jù)緩存的裝置采集當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載。
[0040]本發(fā)明實(shí)施例中,參照?qǐng)D5,網(wǎng)站客戶端是能夠訪問網(wǎng)站的應(yīng)用,例如瀏覽器,網(wǎng)站客戶端設(shè)置在用戶設(shè)備(UE,User Equipment)中,UE可以是手機(jī)、平板電腦、筆記本、臺(tái)式機(jī)等電子設(shè)備。用戶可以在UE上打開網(wǎng)站客戶端,然后在網(wǎng)站客戶端上輸入所需的網(wǎng)站的地址,從而打開相應(yīng)的網(wǎng)頁(yè)。在這個(gè)過程中,網(wǎng)站客戶端需要與網(wǎng)站服務(wù)器之間進(jìn)行數(shù)據(jù)交互,具體地,網(wǎng)頁(yè)中包含的圖片,Java腳本(JS,JavaScript),層疊樣式表(CSS,CascadingStyle Sheets)等每一個(gè)資源都會(huì)生成一個(gè)超文本傳輸協(xié)議(HTTP,HyperText TransferProtocol)下載請(qǐng)求,由網(wǎng)站客戶端(瀏覽器)發(fā)向網(wǎng)站服務(wù)器,本發(fā)明實(shí)施例將由網(wǎng)站客戶端向網(wǎng)站服務(wù)器發(fā)送的HTTP請(qǐng)求稱為訪問請(qǐng)求,將網(wǎng)站服務(wù)器接收到的所有HTTP請(qǐng)求的數(shù)量稱為網(wǎng)站的訪問量。這里,某一個(gè)網(wǎng)站的訪問量可以是來自同一個(gè)UE的多個(gè)HTTP請(qǐng)求,還可以是來自不同UE的多個(gè)HTTP請(qǐng)求。
[0041]本發(fā)明實(shí)施例中,參照?qǐng)D6,網(wǎng)站客戶端與網(wǎng)站服務(wù)器進(jìn)行數(shù)據(jù)交互時(shí),采用緩存技術(shù)(webcache),如此,可以加快數(shù)據(jù)交互的速度。緩存技術(shù)實(shí)現(xiàn)的基本方式為:將指定的網(wǎng)頁(yè)的數(shù)據(jù)周期性地緩存起來,緩存時(shí)間可從幾秒到幾天,在緩存時(shí)間內(nèi),網(wǎng)頁(yè)只需要生成一次,以后有用戶訪問這個(gè)網(wǎng)頁(yè)時(shí),網(wǎng)站服務(wù)器無(wú)需在數(shù)據(jù)庫(kù)中執(zhí)行復(fù)雜的查詢操作,再重新生成相同的網(wǎng)頁(yè),極大減少了網(wǎng)站服務(wù)器和數(shù)據(jù)庫(kù)的負(fù)荷。這里,數(shù)據(jù)庫(kù)是存放網(wǎng)站數(shù)據(jù)的空間,大多網(wǎng)站都是由動(dòng)態(tài)服務(wù)器頁(yè)面(ASP,Active Server Page)、超文本預(yù)處理器(PHP,Hypertext Preprocessor)開發(fā)的動(dòng)態(tài)網(wǎng)站,網(wǎng)站數(shù)據(jù)由專門的一個(gè)數(shù)據(jù)庫(kù)來存放。網(wǎng)站的數(shù)據(jù)庫(kù)根據(jù)網(wǎng)站的大小、數(shù)據(jù)的多少,決定選用結(jié)構(gòu)化查詢語(yǔ)(SQL,StructuredQuery Language)、關(guān)系數(shù)據(jù)庫(kù)(ACCESS)、關(guān)系型數(shù)據(jù)庫(kù)(DB2)、或甲骨文(ORCLE)數(shù)據(jù)庫(kù)。
[0042]這里,數(shù)據(jù)庫(kù)包括但不限于各種關(guān)系型和非關(guān)系型的數(shù)據(jù)庫(kù);緩存包括但不限于各種內(nèi)存和文件緩存,比如使用內(nèi)存緩存(memcache)和數(shù)據(jù)庫(kù)(redis)等實(shí)現(xiàn)。
[0043]基于此,數(shù)據(jù)庫(kù)負(fù)載是指數(shù)據(jù)庫(kù)查詢網(wǎng)站數(shù)據(jù)所消耗的資源,數(shù)據(jù)庫(kù)負(fù)載與網(wǎng)站的訪問量有關(guān)。
[0044]步驟102:根據(jù)所述當(dāng)前網(wǎng)站的訪問量以及數(shù)據(jù)庫(kù)負(fù)載,計(jì)算得到當(dāng)前的緩存周期。
[0045]本發(fā)明實(shí)施例中,計(jì)算當(dāng)前的緩存周期采用閉環(huán)控制方法,閉環(huán)控制方法是根據(jù)控制對(duì)象輸出反饋來進(jìn)行校正的控制方式,它是在測(cè)量出實(shí)際與計(jì)劃發(fā)生偏差時(shí),按定額或標(biāo)準(zhǔn)來進(jìn)行糾正的。從輸出量變化取出控制信號(hào)作為比較量反饋給輸入端控制輸入量,自動(dòng)控制通常是閉環(huán)控制??梢?,本發(fā)明實(shí)施例是自動(dòng)調(diào)整緩存周期。
[0046