亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)緩存的方法和裝置的制造方法_2

文檔序號:9839675閱讀:來源:國知局
程內(nèi)緩存區(qū)域存儲的數(shù)據(jù)是對象類型的數(shù)據(jù)(即從數(shù)據(jù)庫中獲取的數(shù)據(jù)直接存儲到進程內(nèi)緩存區(qū)域,而無需進行格式轉(zhuǎn)換),所以當在當前進程的進程內(nèi)緩存區(qū)域查找到目標數(shù)據(jù)時,可以直接生成攜帶目標數(shù)據(jù)的數(shù)據(jù)響應,并將數(shù)據(jù)響應發(fā)送給終端。
[0029]方式二:若在進程間緩存區(qū)域中查找到目標數(shù)據(jù),則對目標數(shù)據(jù)進行反序列化處理,獲得反序列化后的目標數(shù)據(jù);將攜帶反序列化后的目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給終端。
[0030]由于進程間緩存區(qū)域存儲的數(shù)據(jù)是字符串類型的數(shù)據(jù),即從數(shù)據(jù)庫中獲取數(shù)據(jù)后,需要將獲取的數(shù)據(jù)進行序列化處理,獲得適于緩存區(qū)域存儲的數(shù)據(jù),再將序列化處理后的數(shù)據(jù)存儲至進程間緩存區(qū)域,所以當從進程間緩存區(qū)域查找到目標數(shù)據(jù)后,需要對查找到的目標數(shù)據(jù)進行反序列化處理,獲得原始數(shù)據(jù),再將攜帶反序列化處理后的目標數(shù)據(jù)的數(shù)據(jù)響應反饋給終端。
[0031 ]進一步的,當數(shù)據(jù)請求對應的目標數(shù)據(jù)第一次被訪問時,預設緩存區(qū)域還未存儲該目標數(shù)據(jù),因此當在預設緩存區(qū)域中沒有查找到目標數(shù)據(jù)時,服務器可以從數(shù)據(jù)庫中獲取目標數(shù)據(jù),然后將攜帶目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給該終端。此外,為了便于后續(xù)該終端或者其他終端再次訪問該目標數(shù)據(jù)時,提高獲取該目標數(shù)據(jù)的效率,可以將從數(shù)據(jù)庫中獲取的目標數(shù)據(jù)緩存至預設緩存區(qū)域中。
[0032]進一步的,當在預設緩存區(qū)域中沒有查找到目標數(shù)據(jù),且從數(shù)據(jù)庫中獲取到目標數(shù)據(jù)后,服務器需要將獲得的目標數(shù)據(jù)存儲至預設緩存區(qū)域,以便后續(xù)終端再次訪問時,直接從預設緩存區(qū)域中獲取該目標數(shù)據(jù)。具體的,當預設緩存區(qū)域僅包括進程內(nèi)緩存區(qū)域時,服務器可以基于進程內(nèi)緩存區(qū)域?qū)倪M程內(nèi)緩存機制,將從數(shù)據(jù)庫中獲取的目標數(shù)據(jù)存儲至當前進程的進程內(nèi)緩存區(qū)域中。當預設緩存區(qū)域僅包括進程間緩存區(qū)域時,服務器可以基于進程間緩存區(qū)域?qū)倪M程間緩存機制,將從數(shù)據(jù)庫中獲取的目標數(shù)據(jù)存儲至進程間緩存區(qū)域中。
[0033]當預設緩存區(qū)域包括進程內(nèi)緩存區(qū)域和進程間緩存區(qū)域,且服務器需要將從數(shù)據(jù)庫中獲取的目標數(shù)據(jù)進行存儲時,服務器可以根據(jù)預設存儲規(guī)則,選擇該目標數(shù)據(jù)需要存儲的緩存區(qū)域。
[0034]其中一種預設存儲規(guī)則對應的選取緩存區(qū)域的具體實現(xiàn)方式為:服務器可以先確定目標數(shù)據(jù)的大小;若當前進程的進程內(nèi)緩存區(qū)域的剩余存儲空間的大小大于等于目標數(shù)據(jù)的大小,則將目標數(shù)據(jù)緩存至當前進程的進程內(nèi)緩存區(qū)域;若當前進程的進程內(nèi)緩存區(qū)域的剩余存儲空間的大小小于目標數(shù)據(jù)的大小,且進程間緩存區(qū)域的剩余存儲空間的大小大于等于目標數(shù)據(jù)的大小,則對目標數(shù)據(jù)進行序列化處理,并將序列化處理后的目標數(shù)據(jù)緩存至進程間緩存區(qū)域;若當前進程的進程內(nèi)緩存區(qū)域的剩余存儲空間的大小和進程間緩存區(qū)域的剩余存儲空間的大小均小于目標數(shù)據(jù)的大小,則基于當前進程的進程內(nèi)緩存區(qū)域?qū)倪M程內(nèi)緩存機制(例如LRU緩存),將目標數(shù)據(jù)緩存至當前進程的進程內(nèi)緩存區(qū)域。
[0035]進一步的,依據(jù)上述方法實施例,本發(fā)明的另一個實施例還提供了一種數(shù)據(jù)緩存的裝置,如圖2所示,該裝置主要包括:查找單元21和發(fā)送單元22。其中,
[0036]查找單元21,用于在接收到終端發(fā)送的數(shù)據(jù)請求后,從本地的預設緩存區(qū)域查找數(shù)據(jù)請求對應的目標數(shù)據(jù),預設緩存區(qū)域包括進程內(nèi)緩存區(qū)域和/或進程間緩存區(qū)域;
[0037]其中,進程內(nèi)緩存區(qū)域是指專屬于某進程的緩存區(qū)域,即其他進程無權(quán)訪問的緩存區(qū)域;進程間緩存區(qū)域是指各個進程間共享的緩存區(qū)域。當預設緩存區(qū)域包括進程內(nèi)緩存區(qū)域或者進程間緩存區(qū)域時,查找單元21可以從當前進程的進程內(nèi)緩存區(qū)域或者進程間緩存區(qū)域中查找數(shù)據(jù)請求對應的目標數(shù)據(jù);當預設緩存區(qū)域包括進程內(nèi)緩存區(qū)域和進程間緩存區(qū)域時,由于從當前進程的進程內(nèi)緩存區(qū)域查找數(shù)據(jù)的速度較快,所以查找單元21可以先從當前進程的進程內(nèi)緩存區(qū)域中查找目標數(shù)據(jù),若在當前進程的進程內(nèi)緩存區(qū)域查不到目標數(shù)據(jù),再從進程間緩存區(qū)域中查找目標數(shù)據(jù)。
[0038]發(fā)送單元22,用于當查找單元21在預設緩存區(qū)域中查找到目標數(shù)據(jù)時,將攜帶目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給終端。
[0039]本發(fā)明實施例提供的數(shù)據(jù)緩存的裝置,能夠在接收到終端發(fā)送的數(shù)據(jù)請求后,月艮務器直接(例如網(wǎng)站服務器或者應用服務器)從本地的預設緩存區(qū)域(包括進程內(nèi)緩存區(qū)域和/或進程間緩存區(qū)域)查找該數(shù)據(jù)請求對應的目標數(shù)據(jù),并在查找到目標數(shù)據(jù)后,將攜帶目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給終端。與現(xiàn)有技術中需要跨機查找目標數(shù)據(jù)相比,本發(fā)明直接從當前服務器的進程內(nèi)緩存區(qū)域或者進程間緩存區(qū)域中查找目標數(shù)據(jù),而無需通過特定的網(wǎng)絡I/O端口向其他設備獲取目標數(shù)據(jù),從而提高了獲取數(shù)據(jù)的效率,進而提高了終端訪問服務器的效率。
[0040]進一步的,如圖3所示,發(fā)送單元22,包括:
[0041]第一發(fā)送模塊221,用于當在當前進程的進程內(nèi)緩存區(qū)域中查找到目標數(shù)據(jù)時,將攜帶目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給終端。
[0042I進一步的,如圖3所示,發(fā)送單元22,包括:
[0043]處理模塊222,用于當在進程間緩存區(qū)域中查找到目標數(shù)據(jù)時,對目標數(shù)據(jù)進行反序列化處理,獲得反序列化后的目標數(shù)據(jù);
[0044]第二發(fā)送模塊223,用于將攜帶處理模塊222獲得的反序列化后的目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給終端。
[0045]進一步的,當數(shù)據(jù)請求對應的目標數(shù)據(jù)第一次被訪問時,預設緩存區(qū)域還未存儲該目標數(shù)據(jù),在這種情況下,如圖3所示,該裝置還包括:
[0046]獲取單元23,用于當查找單元21在預設緩存區(qū)域中沒有查找到目標數(shù)據(jù)時,從數(shù)據(jù)庫中獲取目標數(shù)據(jù);
[0047]發(fā)送單元22,還用于將攜帶獲取單元23獲取的目標數(shù)據(jù)的數(shù)據(jù)響應發(fā)送給終端;
[0048]緩存單元24,用于將獲取單元23從數(shù)據(jù)庫中獲取的目標數(shù)據(jù)緩存至預設緩存區(qū)域中。
[0049]進一步的,如圖3所示,緩存單元24,包括:
[0050]確定模塊241,用于確定目標數(shù)據(jù)的大??;
[0051]緩存模塊242,用于當當前進程的進程內(nèi)緩存區(qū)域的剩余存儲空間的大小大于等于目標數(shù)據(jù)的大小時,將目標數(shù)據(jù)緩存至當前進程的進程內(nèi)緩存區(qū)域;
[0052]處理模塊243,用于當當前進程的進程內(nèi)緩存區(qū)域的剩余存儲空間的大小小于目標數(shù)據(jù)的大小,且進程間緩存區(qū)域的剩余存儲空間的大小大于等于目標數(shù)據(jù)的大小時,對目標數(shù)據(jù)進行序列化處理;
[0053]緩存模塊242,還用于將所述處理模塊243獲得的序列化處理后的目標數(shù)據(jù)緩存至所述進程間緩存區(qū)域;
[0054]緩存模塊242,還用于當當前進程的進程內(nèi)緩存區(qū)域的剩余存儲空間的大小和進程間緩存區(qū)域的剩余存儲空間的大小均小于目標數(shù)據(jù)的大小時,基于當前進程的進程內(nèi)緩存區(qū)域?qū)倪M程內(nèi)緩存機制,將目標數(shù)據(jù)緩存至當前進程的進程內(nèi)緩存區(qū)域。
[0055]進一步的,進程內(nèi)緩存區(qū)域?qū)倪M程內(nèi)緩存機制為近期最少使用LRU緩存。
[0056]其中,LRU緩存是指當進程內(nèi)緩存區(qū)域沒有剩余存儲空間時,可以將近期最少使用的數(shù)據(jù)(即近期用戶訪問次數(shù)最少的數(shù)據(jù))刪除,然后緩存從數(shù)據(jù)庫中獲取的新數(shù)據(jù)。
[0057]此外,進程間緩存區(qū)域?qū)倪M程間緩存機制可以為Shared Dictd C
當前第2頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1