国产精品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>

      一種分布式緩存方法及裝置的制造方法

      文檔序號:9527707閱讀:344來源:國知局
      一種分布式緩存方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明數(shù)屬于數(shù)據(jù)緩存技術(shù)領(lǐng)域,尤其涉及一種分布式緩存方法及裝置。
      【背景技術(shù)】
      [0002] 當(dāng)傳統(tǒng)數(shù)據(jù)庫面臨大規(guī)模數(shù)據(jù)訪問時,磁盤I/O往往成為性能瓶頸,從而導(dǎo)致 過高的響應(yīng)延遲。分布式緩存將高速內(nèi)存作為數(shù)據(jù)對象的存儲介質(zhì),數(shù)據(jù)以鍵值對(key/ value)形式存儲,理想情況下可以獲得DRAM級的讀寫性能。
      [0003] 然而隨著所緩存的數(shù)據(jù)量的快速增長,在面對高并發(fā)訪問要求的情況下,緩存響 應(yīng)的速度仍然不夠讓人滿意。在大量的緩存數(shù)據(jù)中根據(jù)key來查找value,當(dāng)緩存中的key 有上億或幾十億時,查找的速度并不理想。同時當(dāng)value比較大,例如是圖像數(shù)據(jù)時,更加 影響訪問的速度。

      【發(fā)明內(nèi)容】

      [0004] 本發(fā)明的目的是提供一種分布式緩存方法及裝置,能夠在大數(shù)據(jù)量情況下依然提 供比較高的訪問速度。
      [0005] 為了實現(xiàn)上述目的,本發(fā)明技術(shù)方案如下:
      [0006] -種分布式緩存方法,所述方法包括步驟:
      [0007] 判斷接收到的用戶的訪問請求是否滿足預(yù)先設(shè)定的規(guī)則,如果滿足,則進(jìn)入下一 步進(jìn)行緩存處理,否則不進(jìn)行緩存處理;
      [0008] 根據(jù)用戶請求生成緩存主鍵,根據(jù)緩存主鍵計算緩存隨機數(shù),根據(jù)計算得到的緩 存隨機數(shù)將收集的對應(yīng)于用戶請求的響應(yīng)數(shù)據(jù)分配到不同的緩存服務(wù)器進(jìn)行分布式緩存。
      [0009] 其中,所述預(yù)先設(shè)定的規(guī)則為建立分別保存了相應(yīng)的用戶請求關(guān)鍵值的黑白名 單,在收到用戶請求后,提取用戶請求中的關(guān)鍵值,先查看用戶請求的關(guān)鍵值是否在白名單 中,再查看用戶請求的關(guān)鍵值是否在黑名單中,當(dāng)用戶請求的關(guān)鍵值在白名單中并且不在 黑名單中時,判斷為滿足預(yù)先設(shè)定的規(guī)則。
      [0010] 本發(fā)明所述根據(jù)用戶請求生成緩存主鍵,根據(jù)緩存主鍵計算緩存隨機數(shù),包括:
      [0011] 根據(jù)用戶請求生成緩存主鍵A;
      [0012] 根據(jù)緩存主鍵按照預(yù)設(shè)的算法計算得到一個隨機大數(shù)Μ;
      [0013] 對計算得到的隨機大數(shù)用分布式緩存服務(wù)器的數(shù)量求模,得到緩存隨機數(shù)k。
      [0014] 進(jìn)一步地,所述預(yù)設(shè)的算法包括:
      [0015] 令C=A+B,其中B為{1,1,…,1},其中B的位數(shù)與A相同;
      [0016] 根據(jù)下式計算隨機大數(shù)Μ:
      [0017] M=CCT〇
      [0018] 所述根據(jù)計算得到的緩存隨機數(shù)將收集的對應(yīng)于用戶請求的響應(yīng)數(shù)據(jù)分配到不 同的緩存服務(wù)器進(jìn)行分布式緩存,包括:
      [0019] 根據(jù)計算得到的緩存隨機數(shù),將對應(yīng)于用戶請求的響應(yīng)數(shù)據(jù)緩存到第k臺緩存服 務(wù)器。
      [0020] 本發(fā)明還提出了一種分布式緩存裝置,所述裝置包括:
      [0021] 用戶請求篩選模塊,用于判斷接收到的用戶的訪問請求是否滿足預(yù)先設(shè)定的規(guī) 貝1J,如果滿足,則進(jìn)入緩存服務(wù)器分配模塊進(jìn)行緩存處理,否則不進(jìn)行緩存處理;
      [0022] 緩存服務(wù)器分配模塊,用于根據(jù)用戶請求生成緩存主鍵,根據(jù)緩存主鍵計算緩存 隨機數(shù),根據(jù)計算得到的緩存隨機數(shù)將收集的對應(yīng)于用戶請求的響應(yīng)數(shù)據(jù)分配到不同的緩 存服務(wù)器進(jìn)行分布式緩存。
      [0023] 本發(fā)明所述用戶請求篩選模塊內(nèi)設(shè)置了預(yù)先設(shè)定的規(guī)則,建立分別保存了相應(yīng)的 用戶請求關(guān)鍵值的黑白名單,在收到用戶請求后,提取用戶請求中的關(guān)鍵值,先查看用戶請 求的關(guān)鍵值是否在白名單中,再查看用戶請求的關(guān)鍵值是否在黑名單中,當(dāng)用戶請求的關(guān) 鍵值在白名單中并且不在黑名單中時,判斷為滿足預(yù)先設(shè)定的規(guī)則。
      [0024] 進(jìn)一步地,所述緩存服務(wù)器分配模塊在根據(jù)用戶請求生成緩存主鍵,根據(jù)緩存主 鍵計算緩存隨機數(shù)時,執(zhí)行如下操作:
      [0025] 根據(jù)用戶請求生成緩存主鍵A;
      [0026] 根據(jù)緩存主鍵按照預(yù)設(shè)的算法計算得到一個隨機大數(shù)Μ;
      [0027] 對計算得到的隨機大數(shù)用分布式緩存服務(wù)器的數(shù)量求模,得到緩存隨機數(shù)k。
      [0028] 進(jìn)一步地,所述緩存服務(wù)器分配模塊根據(jù)緩存主鍵按照預(yù)設(shè)的算法計算得到一個 隨機大數(shù)M,執(zhí)行如下操作:
      [0029] 令C=A+B,其中B為{1,1,…,1},其中B的位數(shù)與A相同;
      [0030] 根據(jù)下式計算隨機大數(shù)Μ:
      [0031] M=CCT〇
      [0032] 進(jìn)一步地,所述緩存服務(wù)器分配模塊根據(jù)計算得到的緩存隨機數(shù)將收集的對應(yīng)于 用戶請求的響應(yīng)數(shù)據(jù)分配到不同的緩存服務(wù)器進(jìn)行分布式緩存時,執(zhí)行如下操作:
      [0033] 根據(jù)計算得到的緩存隨機數(shù),將對應(yīng)于用戶請求的響應(yīng)數(shù)據(jù)緩存到第k臺緩存服 務(wù)器。
      [0034] 本發(fā)明提出的一種分布式緩存方法及裝置,通過根據(jù)用戶請求計算緩存隨機數(shù), 將用戶請求對應(yīng)的響應(yīng)數(shù)據(jù)緩存在不同緩存服務(wù)器中,提高了緩存的利用率,并提高了緩 存的訪問速度。
      【附圖說明】
      [0035] 圖1為本發(fā)明一種分布式緩存方法的流程圖。
      【具體實施方式】
      [0036] 下面結(jié)合附圖和實施例對本發(fā)明技術(shù)方案做進(jìn)一步詳細(xì)說明,以下實施例不構(gòu)成 對本發(fā)明的限定。
      [0037] 如圖1所示,本實施例一種分布式緩存方法,包括:
      [0038] S1、判斷接收到的用戶的訪問請求是否滿足預(yù)先設(shè)定的規(guī)則,如果滿足,則進(jìn)入下 一步進(jìn)行緩存處理,否則不進(jìn)行緩存處理。
      [0039] 用戶對網(wǎng)頁進(jìn)行操作,點擊網(wǎng)頁上的區(qū)域產(chǎn)生用戶請求,用戶請求被發(fā)送到網(wǎng)頁 對應(yīng)的后臺服務(wù)器。為了提高緩存的效率,并避免緩存沖突,本實施例還實行黑白名單機 制,對用戶請求進(jìn)行分類,排除一些不允許緩存的用戶請求。
      [0040] 具體地,用戶請求request-般包括請求體和關(guān)鍵值,例如一個驗證身份的用戶 請求會包括用戶ID和用戶身份信息,其中用戶ID為關(guān)鍵值,而用戶身份信息為請求體。
      [0041] 系統(tǒng)中會預(yù)先設(shè)置有黑名單和白名單,黑白名單中各自保存了相應(yīng)的用戶請求的 關(guān)鍵值,本實施例通過黑白名單兩層判斷來為用戶請求分類。在收到用戶請求后,能夠提取 用戶請求中的關(guān)鍵值,先查看用戶請求的關(guān)鍵值是否在白名單中,再查看用戶請求的關(guān)鍵 值是否在黑名單中,當(dāng)用戶請求關(guān)鍵值在白名單中并且不在黑名單中時,判斷為滿足預(yù)先 設(shè)定的規(guī)則,才進(jìn)入下面的緩存步驟。
      [0042] 從而根據(jù)用戶請求的關(guān)鍵值對用戶請求進(jìn)行分類,排除不允許進(jìn)行緩存的用戶請 求,降低緩存的負(fù)擔(dān)。
      [0043] 例如在網(wǎng)上商城后臺服務(wù)應(yīng)用中,對用戶反復(fù)訪問,卻不會頻繁變動數(shù)據(jù)結(jié)果的 接口用戶請求允許緩存,對可能影響用戶看到最新結(jié)果的數(shù)據(jù)的接口用戶請求不允許緩 存,從而保證讓用戶最快訪問到,諸如主頁,某商品明細(xì),某一組關(guān)鍵詞搜索等的結(jié)果。具體 黑白名單的分類與具體業(yè)務(wù)實現(xiàn)相關(guān),這里不再贅述。
      [0044] S2、根據(jù)用戶請求生成緩存主鍵,根據(jù)緩存主鍵計算緩存隨機數(shù),根據(jù)計算得到的 緩存隨機數(shù)將收集的對應(yīng)于用戶請求的響應(yīng)數(shù)據(jù)分配到不同的緩存服務(wù)器進(jìn)行分布式緩 存。
      [0045] 對于滿足黑白名單規(guī)則的用戶請求,應(yīng)用后臺服務(wù)器會收集對應(yīng)的響應(yīng)數(shù)據(jù),在 緩存中通過以鍵值對方式保存,鍵值對包括緩存主鍵(主鍵key)和對應(yīng)的響應(yīng)數(shù)據(jù)(值 value)〇
      [0046] 本實施例通過分布式緩存來緩存數(shù)據(jù)。在現(xiàn)有技術(shù)中,分布式緩存服務(wù)器每臺緩 存服務(wù)器都保存同樣的數(shù)據(jù),以便于無論從哪一臺緩存服務(wù)器都能夠取到對應(yīng)的響應(yīng)數(shù) 據(jù),而且無論哪一臺緩存服務(wù)器故障,也能夠從其他緩存服務(wù)器中得到響應(yīng)數(shù)據(jù)。但是這種 方式對于緩存系統(tǒng)來說,一臺緩存服務(wù)器存儲的數(shù)據(jù)有限,每次查詢緩存時都需要檢索所 有的緩存數(shù)據(jù),查詢的時間比較長,當(dāng)緩存的數(shù)據(jù)很大時,時間上的延遲帶來不良的用戶體 驗。并且現(xiàn)有技術(shù)這樣做的好處是通過分布式緩存服務(wù)器保障了緩存數(shù)據(jù)的相互備份,但 是對于緩存系統(tǒng)來說,緩存的數(shù)據(jù)并不是特別需要備份,完全可以通過重建來重新生成緩 存數(shù)據(jù)。
      [0047] 本實施例打破常規(guī)的做法,采用分布式緩存服務(wù)器來緩存,并且每臺緩存服務(wù)器 保存不同的數(shù)據(jù)。由于緩存是用來保存暫時的數(shù)據(jù),即使緩存服務(wù)器故障,也能通過重新緩 存來滿足使用需求,因此本發(fā)明從提高緩存的訪問速度和保證緩存不會溢出的角度來提高 緩存實用效率。
      [0048] 例如,假設(shè)計算機每秒計算100次,內(nèi)存只能存儲800個元素。則對于單一線性緩 存,如果存儲1000個元素,那么,首先會導(dǎo)致多出的200個元素被強制逐出(否則系統(tǒng)內(nèi)存 溢出直接奔潰),則查詢時,假設(shè)用比較慢的算法,順序查找,那么需要計算8秒鐘。
      [0049] 而采用分布式緩存,建設(shè)有兩臺緩存服務(wù)器,因此平均每臺存儲500元素(小于 800,可以正常存儲),在查詢時,散列后直接在對應(yīng)緩存服務(wù)器內(nèi)查詢,則時間耗費5秒,而 且可以存儲大于單一緩存服務(wù)器的容量。
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1