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

一種緩存數(shù)據(jù)處理方法以及裝置與流程

文檔序號:12363564閱讀:183來源:國知局
本發(fā)明涉及計算機
技術(shù)領(lǐng)域
:,尤其涉及一種緩存數(shù)據(jù)處理方法以及裝置。
背景技術(shù)
::Linux是一套免費使用和自由傳播的類unix操作系統(tǒng),是一個基于POSIX(PortableOperatingSystemInterface,可移植操作系統(tǒng)接口)和unix的多用戶、多任務(wù)、支持多線程和多CPU(CentralProcessingUnit,中央處理器)的操作系統(tǒng)?;贚inux操作系統(tǒng)的應(yīng)用程序,經(jīng)常會使用文件系統(tǒng)作為數(shù)據(jù)緩存,但是當(dāng)應(yīng)用程序使用了大量的文件作為數(shù)據(jù)緩存時,就會面臨緩存管理問題,此時,需要定期對文件進(jìn)行清理,以免磁盤空間不足。常見的緩存清理算法有LFU(leastfrequentlyused,最近最不經(jīng)常使用算法)和LRU(LeastRecentlyUsed,最近最久未使用算法)等。目前常見的文件清理方法是通過shell腳本遍歷查找指定目錄,按文件的訪問時間、編輯時間等信息進(jìn)行清理。但是當(dāng)文件過多時,對指定目錄進(jìn)行遍歷的開銷會很大,使得每次進(jìn)行緩存清理都會使系統(tǒng)負(fù)擔(dān)加重。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供一種緩存數(shù)據(jù)處理方法以及裝置,可以在進(jìn)行緩存清理時降低系統(tǒng)負(fù)擔(dān)。本發(fā)明實施例提供了一種緩存數(shù)據(jù)處理方法,包括:檢測磁盤空間使用率和索引節(jié)點使用率;當(dāng)所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表;其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的;在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待 清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。相應(yīng)地,本發(fā)明實施例還提供了一種緩存數(shù)據(jù)處理裝置,包括:檢測模塊,用于檢測磁盤空間使用率和索引節(jié)點使用率;獲取模塊,用于當(dāng)所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表;其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的;緩存清理模塊,用于在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。本發(fā)明實施例中,通過檢測磁盤空間使用率和索引節(jié)點使用率,可以在磁盤空間使用率超過第一使用率閾值和/或索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表,文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,再在已按照文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,由于在進(jìn)行緩存清理時,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息,而無需再對指定目錄進(jìn)行遍歷,所以可以在進(jìn)行緩存清理時有效地降低系統(tǒng)負(fù)擔(dān)。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例提供的一種緩存數(shù)據(jù)處理方法的流程示意圖;圖2是本發(fā)明實施例提供的另一種緩存數(shù)據(jù)處理方法的流程示意圖;圖3是本發(fā)明實施例提供的一種緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;圖4是本發(fā)明實施例提供的另一種緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例提供的又一種緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。請參見圖1,是本發(fā)明實施例提供的一種緩存數(shù)據(jù)處理方法的流程示意圖,所述方法可以包括:S101,檢測磁盤空間使用率和索引節(jié)點使用率;具體的,定時檢查磁盤空間使用率和索引節(jié)點(inode)使用率,例如,默認(rèn)每10秒檢查一次磁盤空間使用率和索引節(jié)點使用率。在獲取到所述磁盤空間使用率和所述索引節(jié)點使用率后,可以判斷所述磁盤空間使用率是否超過第一使用率閾值,并判斷所述索引節(jié)點使用率是否超過第二使用率閾值。其中,所述第一使用率閾值和所述第二使用率閾值均是預(yù)先進(jìn)行設(shè)置的。S102,當(dāng)所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表;其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的;具體的,當(dāng)判斷出所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,可以獲取預(yù)設(shè)的文件管理列表。其中,在S101步驟之前,先配置需要進(jìn)行監(jiān)視的目錄列表以及緩存清理策略,再對所述目錄列表進(jìn)行遍歷,以得到所述目錄列表中的所有文件信息,并將所有文件信息分別確定為目標(biāo)文件信息,再根據(jù)各目標(biāo)文件信息分別對應(yīng)的文件使用信息對所述各目標(biāo)文件信息進(jìn)行排序。其中,若緩存清理策略為LRU,則所述文件使用信息包括文件使用時間,即文件最后一次被使用的時間;若緩存清理策略為LFU,則所述文件使用信息包括文件使用次數(shù),即在最近一段時間內(nèi)文件被使用的次數(shù);文件被使用的情況可以包括文件被創(chuàng)建、寫入、訪問等事件。例如,若所述文件使用信息包括文件使用時間,則可以將最早的文件使用時間對應(yīng)的目標(biāo)文件信息排在最前面,即將最久未使用的文件所對應(yīng)的目標(biāo)文件信息排在最前面,并按照從最早到最近的文件使用時間的順序?qū)Ω髂繕?biāo)文件信息進(jìn)行排序,其中,最近使用的文件所對應(yīng)的目標(biāo)文件信息排在最后面。又例如,若所述文件使用信息包括文件使用次數(shù),則可以將文件使用次數(shù)最少的目標(biāo)文件信息排在最前面,并按照文件使用次數(shù)從少到多的順序?qū)Ω髂繕?biāo)文件 信息進(jìn)行排序,其中,使用次數(shù)最多的目標(biāo)文件信息排在最后面。對所述各目標(biāo)文件信息進(jìn)行排序之后,再將排序好后的所述各目標(biāo)文件信息按順序添加至文件管理列表中,即所述文件管理列表中的所述各目標(biāo)文件信息是排序好的。以緩存清理策略為LRU為例,若所述各目標(biāo)文件信息是按照從最早到最近的文件使用時間的順序進(jìn)行排序,則所述文件管理列表中所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,所述文件管理列表中排在最前面的目標(biāo)文件信息對應(yīng)的文件使用時間是最早的,所述文件管理列表中排在最后面的目標(biāo)文件信息對應(yīng)的文件使用時間是最近的。優(yōu)選地,當(dāng)檢測到所述目標(biāo)文件信息對應(yīng)的文件被使用時,即目標(biāo)文件信息對應(yīng)的文件被創(chuàng)建、訪問、寫入等等時,將文件被使用的所述目標(biāo)文件信息確定為待更新文件信息;對所述文件管理列表中的所述待更新文件信息對應(yīng)的文件使用信息進(jìn)行更新,并根據(jù)更新后的文件使用信息對所述文件管理列表中的所述待更新文件信息進(jìn)行重新排序,即所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的。例如,若所述文件管理列表中所述各目標(biāo)文件信息是按照LRU進(jìn)行排序的,且所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,則當(dāng)檢測到其中一個目標(biāo)文件信息對應(yīng)的文件被使用時,可以將該目標(biāo)文件信息對應(yīng)的文件使用時間更新為最近的,并將該目標(biāo)文件信息排到最后。通過實時更新目標(biāo)文件信息對應(yīng)的文件使用信息,可以保證在清理緩存數(shù)據(jù)時的準(zhǔn)確性,以避免清理掉最近或經(jīng)常使用的緩存數(shù)據(jù)。S103,在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理;具體的,在獲取到預(yù)設(shè)的文件管理列表之后,可以在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。其中,獲取到的所述至少一個目標(biāo)文件信息的數(shù)量可以為預(yù)設(shè)的文件清理數(shù)量。例如,若所述文件管理列表中所述各目標(biāo)文件信息是按照LRU進(jìn)行排序的,且所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,且目標(biāo)文件信息的數(shù)量為1000個,預(yù)設(shè)的文件清理數(shù)量 為100,則在獲取到所述文件管理列表之后,可以將所述文件管理列表中前100個目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù)刪除。本發(fā)明實施例只需要在預(yù)設(shè)階段,對目錄列表進(jìn)行一次遍歷,后續(xù)在清理緩存數(shù)據(jù)時無需再對目錄列表進(jìn)行遍歷,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息即可,從而可以避免每次清理緩存時都對目錄列表進(jìn)行遍歷所帶來的巨大開銷。本發(fā)明實施例中,通過檢測磁盤空間使用率和索引節(jié)點使用率,可以在磁盤空間使用率超過第一使用率閾值和/或索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表,文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,再在已按照文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,由于在進(jìn)行緩存清理時,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息,而無需再對指定目錄進(jìn)行遍歷,所以可以在進(jìn)行緩存清理時有效地降低系統(tǒng)負(fù)擔(dān)。再請參見圖2,是本發(fā)明實施例提供的另一種緩存數(shù)據(jù)處理方法的流程示意圖,所述方法可以包括:S201,預(yù)設(shè)第一使用率閾值、第二使用率閾值以及文件清理數(shù)量;具體的,預(yù)設(shè)第一使用率閾值、第二使用率閾值以及文件清理數(shù)量,進(jìn)一步還可以預(yù)先配置需要進(jìn)行監(jiān)視的目錄列表以及緩存清理策略。其中,所述第一使用率閾值是用于檢測磁盤空間使用率是否達(dá)到需要進(jìn)行緩存清理的臨界點,所述第二使用率閾值是用于檢測索引節(jié)點使用率是否達(dá)到需要進(jìn)行緩存清理的臨界點,所述文件清理數(shù)量為每次進(jìn)行緩存清理時所需清理的文件數(shù)量。其中,所述緩存清理策略包括LRU或LFU。S202,對目錄列表進(jìn)行遍歷,以獲得所述目錄列表中的各目標(biāo)文件信息;具體的,通過異步的方式對目錄列表進(jìn)行描述,即對目錄列表進(jìn)行遍歷,以獲得所述目錄列表中的各目標(biāo)文件信息。S203,根據(jù)所述各目標(biāo)文件信息分別對應(yīng)的文件使用信息對所述各目標(biāo)文件信息進(jìn)行排序;具體的,根據(jù)所述各目標(biāo)文件信息分別對應(yīng)的文件使用信息對所述各目標(biāo)文件信息進(jìn)行排序。其中,若緩存清理策略為LRU,則所述文件使用信息包括文件使用時間,即文件最后一次被使用的時間;若緩存清理策略為LFU,則所 述文件使用信息包括文件使用次數(shù),即在最近一段時間內(nèi)文件被使用的次數(shù);文件被使用的情況可以包括文件被創(chuàng)建、寫入、訪問等事件。例如,若所述文件使用信息包括文件使用時間,則可以將最早的文件使用時間對應(yīng)的目標(biāo)文件信息排在最前面,即將最久未使用的文件所對應(yīng)的目標(biāo)文件信息排在最前面,并按照從最早到最近的文件使用時間的順序?qū)Ω髂繕?biāo)文件信息進(jìn)行排序,其中,最近使用的文件所對應(yīng)的目標(biāo)文件信息排在最后面。又例如,若所述文件使用信息包括文件使用次數(shù),則可以將文件使用次數(shù)最少的目標(biāo)文件信息排在最前面,并按照文件使用次數(shù)從少到多的順序?qū)Ω髂繕?biāo)文件信息進(jìn)行排序,其中,使用次數(shù)最多的目標(biāo)文件信息排在最后面。S204,將排序后的所述各目標(biāo)文件信息按順序添加至文件管理列表中;具體的,對所述各目標(biāo)文件信息進(jìn)行排序之后,再將排序好后的所述各目標(biāo)文件信息按順序添加至文件管理列表中,即所述文件管理列表中的所述各目標(biāo)文件信息是排序好的。以緩存清理策略為LRU為例,若所述各目標(biāo)文件信息是按照從最早到最近的文件使用時間的順序進(jìn)行排序,則所述文件管理列表中所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,所述文件管理列表中排在最前面的目標(biāo)文件信息對應(yīng)的文件使用時間是最早的,所述文件管理列表中排在最后面的目標(biāo)文件信息對應(yīng)的文件使用時間是最近的。優(yōu)選地,在生成包含有所述各目標(biāo)文件信息的文件管理列表之后,可以通過Linux監(jiān)視文件的inotify(inotify是一個Linux特性,它監(jiān)控文件系統(tǒng)操作,比如讀取、寫入和創(chuàng)建)接口實時監(jiān)視所述各目標(biāo)文件信息分別對應(yīng)的文件的讀取和寫入,當(dāng)檢測到所述目標(biāo)文件信息對應(yīng)的文件被使用時,說明inotify接口監(jiān)視到該目標(biāo)文件信息對應(yīng)的文件被創(chuàng)建、訪問或?qū)懭?,此時,可以將文件被使用的所述目標(biāo)文件信息確定為待更新文件信息;對所述文件管理列表中的所述待更新文件信息對應(yīng)的文件使用信息進(jìn)行更新,并根據(jù)更新后的文件使用信息對所述文件管理列表中的所述待更新文件信息進(jìn)行重新排序,即所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的。其中,inotify接口對文件進(jìn)行監(jiān)視的事件包括:IN_ACCESS/IN_MODIFY/IN_CREATE/IN_DELETE/IN_DELETE_SELF/IN_MODIFY/IN_MOVE_SELF/IN_MOVED_FROM/IN_MOVED_TO。例如,若所述文件管理列表中所述各目 標(biāo)文件信息是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,則當(dāng)inotify接口檢測到其中一個目標(biāo)文件信息對應(yīng)的文件被訪問時,可以將該目標(biāo)文件信息對應(yīng)的文件使用時間更新為最近的文件使用時間,并將該目標(biāo)文件信息排到最后。其中,對目標(biāo)文件信息對應(yīng)的文件使用信息進(jìn)行更新的步驟可以在以下S205至S207步驟中的任一時刻進(jìn)行。本發(fā)明實施例通過實時更新目標(biāo)文件信息對應(yīng)的文件使用信息,可以保證在清理緩存數(shù)據(jù)時的準(zhǔn)確性,以避免清理掉最近或經(jīng)常使用的緩存數(shù)據(jù)。S205,檢測磁盤空間使用率和索引節(jié)點使用率;具體的,定時檢查磁盤空間使用率和索引節(jié)點使用率,例如,默認(rèn)每10秒檢查一次磁盤空間使用率和索引節(jié)點使用率。在獲取到所述磁盤空間使用率和所述索引節(jié)點使用率后,可以判斷所述磁盤空間使用率是否超過第一使用率閾值,并判斷所述索引節(jié)點使用率是否超過第二使用率閾值。S206,當(dāng)所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表;其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的;具體的,當(dāng)判斷出所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,可以獲取預(yù)設(shè)的文件管理列表,即開始啟動數(shù)據(jù)緩存清理功能。所獲取到的文件管理列表中的所述各目標(biāo)文件信息是已經(jīng)根據(jù)文件使用信息排序好的,且所述各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,即所述各目標(biāo)文件信息分別對應(yīng)的文件使用時間或文件使用次數(shù)是最新的狀態(tài)。S207,在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理;具體的,在獲取到預(yù)設(shè)的文件管理列表之后,可以在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。其中,獲取到的所述至少一個目標(biāo)文件信息的數(shù)量可以為預(yù)設(shè)的文件清理數(shù)量??蛇x地,在進(jìn)行一次緩存數(shù)據(jù)清理之后,可以進(jìn)一步判斷所述磁盤空間使 用率是否小于第一使用率閾值,且所述索引節(jié)點使用率是否小于第二使用率閾值;若判斷均為是,則停止對緩存數(shù)據(jù)的清理;若判斷為否,則進(jìn)一步獲取至少一個新的待清理文件信息,即重新按順序獲取至少一個新的目標(biāo)文件信息,以作為至少一個新的待清理文件信息,再對所述至少一個新的待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,然后繼續(xù)檢測所述磁盤空間使用率和所述索引節(jié)點使用率是否均沒有超標(biāo),若均沒有超標(biāo),則停止對緩存數(shù)據(jù)的清理,否則繼續(xù)對緩存數(shù)據(jù)進(jìn)行清理,直至所述磁盤空間使用率和所述索引節(jié)點使用率均沒有超標(biāo)。其中,每次進(jìn)行緩存數(shù)據(jù)清理時,被清理的文件數(shù)量均可以為預(yù)設(shè)的文件清理數(shù)量。例如,若所述文件管理列表中所述各目標(biāo)文件信息是按照LRU進(jìn)行排序的,且所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,且目標(biāo)文件信息的數(shù)量為1000個,預(yù)設(shè)的文件清理數(shù)量為100,則在獲取到所述文件管理列表之后,可以將所述文件管理列表中前100個目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù)刪除,然后進(jìn)一步判斷所述磁盤空間使用率是否小于第一使用率閾值,且所述索引節(jié)點使用率是否小于第二使用率閾值,若判斷均為是,則停止對緩存數(shù)據(jù)的清理,否則繼續(xù)將所述文件管理列表中的第101個到第200個的目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù)刪除,以此類推,每次進(jìn)行緩存數(shù)據(jù)清理時都按順序刪除100個目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù),直至所述磁盤空間使用率和所述索引節(jié)點使用率均沒有超標(biāo)。本發(fā)明實施例只需要在預(yù)設(shè)階段,對目錄列表進(jìn)行一次遍歷,后續(xù)在清理緩存數(shù)據(jù)時無需再對目錄列表進(jìn)行遍歷,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息即可,從而可以避免每次清理緩存時都對目錄列表進(jìn)行遍歷所帶來的巨大開銷。本發(fā)明實施例中,通過檢測磁盤空間使用率和索引節(jié)點使用率,可以在磁盤空間使用率超過第一使用率閾值和/或索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表,文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,再在已按照文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,由于在進(jìn)行緩存清理時,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息,而無需再對指定目錄進(jìn)行遍歷,所以可以在進(jìn)行緩存清理時有效地降低系統(tǒng)負(fù)擔(dān)。請參見圖3,是本發(fā)明實施例提供的一種緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,所述緩存數(shù)據(jù)處理裝置1可以包括:檢測模塊10、獲取模塊20、緩存清理模塊30;所述檢測模塊10,用于檢測磁盤空間使用率和索引節(jié)點使用率;具體的,所述檢測模塊10可以定時檢查磁盤空間使用率和索引節(jié)點使用率,例如,所述檢測模塊10可以每10秒檢查一次磁盤空間使用率和索引節(jié)點使用率。在獲取到所述磁盤空間使用率和所述索引節(jié)點使用率后,所述檢測模塊10可以進(jìn)一步判斷所述磁盤空間使用率是否超過第一使用率閾值,并判斷所述索引節(jié)點使用率是否超過第二使用率閾值。其中,所述第一使用率閾值和所述第二使用率閾值均是預(yù)先進(jìn)行設(shè)置的。所述獲取模塊20,用于當(dāng)所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表;其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的;具體的,當(dāng)所述檢測模塊10判斷出所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,所述獲取模塊20可以獲取預(yù)設(shè)的文件管理列表。其中,所述文件管理列表中的所述各目標(biāo)文件信息是通過預(yù)先對目錄列表進(jìn)行遍歷所得到的,且所述文件管理列表中的所述各目標(biāo)文件信息是已根據(jù)文件使用信息所排序好的。其中,可以通過預(yù)設(shè)緩存清理策略以確定文件使用信息,例如,若緩存清理策略為LRU,則所述文件使用信息包括文件使用時間,即文件最后一次被使用的時間;若緩存清理策略為LFU,則所述文件使用信息包括文件使用次數(shù),即在最近一段時間內(nèi)文件被使用的次數(shù);文件被使用的情況可以包括文件被創(chuàng)建、寫入、訪問等事件。其中,若所述文件使用信息包括文件使用時間,則所述文件管理列表中的所述各目標(biāo)文件信息是按照從最早到最近的文件使用時間的順序進(jìn)行排序的;若所述文件使用信息包括文件使用次數(shù),則所述文件管理列表中的所述各目標(biāo)文件信息是按照文件使用次數(shù)從少到多的順序進(jìn)行排序的。其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,因此,所述文件管理列表中的各目標(biāo)文件信息的排序位置也是實時更新的,以保證在清理緩存數(shù)據(jù)時的準(zhǔn)確性,避免清理掉最近或經(jīng)常使用的 緩存數(shù)據(jù)。所述緩存清理模塊30,用于在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理;具體的,在所述獲取模塊20獲取到預(yù)設(shè)的文件管理列表之后,所述緩存清理模塊30可以在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。其中,獲取到的所述至少一個目標(biāo)文件信息的數(shù)量可以為預(yù)設(shè)的文件清理數(shù)量。例如,若所述文件管理列表中所述各目標(biāo)文件信息是按照LRU進(jìn)行排序的,且所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,且目標(biāo)文件信息的數(shù)量為1000個,預(yù)設(shè)的文件清理數(shù)量為100,則所述獲取模塊20在獲取到所述文件管理列表之后,所述緩存清理模塊30可以將所述文件管理列表中前100個目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù)刪除。本發(fā)明實施例只需要在預(yù)設(shè)階段,對目錄列表進(jìn)行一次遍歷,后續(xù)在清理緩存數(shù)據(jù)時無需再對目錄列表進(jìn)行遍歷,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息即可,從而可以避免每次清理緩存時都對目錄列表進(jìn)行遍歷所帶來的巨大開銷。本發(fā)明實施例中,通過檢測磁盤空間使用率和索引節(jié)點使用率,可以在磁盤空間使用率超過第一使用率閾值和/或索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表,文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,再在已按照文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,由于在進(jìn)行緩存清理時,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息,而無需再對指定目錄進(jìn)行遍歷,所以可以在進(jìn)行緩存清理時有效地降低系統(tǒng)負(fù)擔(dān)。再請參見圖4,是本發(fā)明實施例提供的另一種緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,所述緩存數(shù)據(jù)處理裝置1可以包括上述圖3對應(yīng)實施例中的檢測模塊10、獲取模塊20、緩存清理模塊30,進(jìn)一步的,所述緩存數(shù)據(jù)處理裝置1還可以包括:預(yù)設(shè)模塊40、遍歷模塊50、排序模塊60、添加模塊70、確定模塊80、更新模塊90、判斷模塊100、停止模塊110;所述預(yù)設(shè)模塊40,用于預(yù)設(shè)第一使用率閾值、第二使用率閾值以及文件清理數(shù)量;具體的,所述預(yù)設(shè)模塊40可以預(yù)設(shè)第一使用率閾值、第二使用率閾值以及文件清理數(shù)量,所述預(yù)設(shè)模塊40還可以預(yù)先配置需要進(jìn)行監(jiān)視的目錄列表以及緩存清理策略。其中,所述第一使用率閾值是用于檢測磁盤空間使用率是否達(dá)到需要進(jìn)行緩存清理的臨界點,所述第二使用率閾值是用于檢測索引節(jié)點使用率是否達(dá)到需要進(jìn)行緩存清理的臨界點,所述文件清理數(shù)量為每次進(jìn)行緩存清理時所需清理的文件數(shù)量。其中,所述緩存清理策略包括LRU或LFU。所述遍歷模塊50,用于對目錄列表進(jìn)行遍歷,以獲得所述目錄列表中的各目標(biāo)文件信息;具體的,所述預(yù)設(shè)模塊40設(shè)置好相關(guān)參數(shù)后,所述遍歷模塊50可以通過異步的方式對目錄列表進(jìn)行描述,即對目錄列表進(jìn)行遍歷,以獲得所述目錄列表中的各目標(biāo)文件信息。所述排序模塊60,用于根據(jù)所述各目標(biāo)文件信息分別對應(yīng)的文件使用信息對所述各目標(biāo)文件信息進(jìn)行排序;具體的,所述遍歷模塊50對目錄列表進(jìn)行遍歷之后,所述排序模塊60可以根據(jù)所述各目標(biāo)文件信息分別對應(yīng)的文件使用信息對所述各目標(biāo)文件信息進(jìn)行排序。其中,若緩存清理策略為LRU,則所述文件使用信息包括文件使用時間,即文件最后一次被使用的時間;若緩存清理策略為LFU,則所述文件使用信息包括文件使用次數(shù),即在最近一段時間內(nèi)文件被使用的次數(shù);文件被使用的情況可以包括文件被創(chuàng)建、寫入、訪問等事件。例如,若所述文件使用信息包括文件使用時間,則所述排序模塊60可以將最早的文件使用時間對應(yīng)的目標(biāo)文件信息排在最前面,即將最久未使用的文件所對應(yīng)的目標(biāo)文件信息排在最前面,并按照從最早到最近的文件使用時間的順序?qū)Ω髂繕?biāo)文件信息進(jìn)行排序,其中,最近使用的文件所對應(yīng)的目標(biāo)文件信息排在最后面。又例如,若所述文件使用信息包括文件使用次數(shù),則所述排序模塊60可以將文件使用次數(shù)最少的目標(biāo)文件信息排在最前面,并按照文件使用次數(shù)從少到多的順序?qū)Ω髂繕?biāo)文件信息進(jìn)行排序,其中,使用次數(shù)最多的目標(biāo)文件信息排在最后面。所述添加模塊70,用于將排序后的所述各目標(biāo)文件信息按順序添加至文件 管理列表中;具體的,所述排序模塊60對所述各目標(biāo)文件信息進(jìn)行排序之后,所述添加模塊70將排序好后的所述各目標(biāo)文件信息按順序添加至文件管理列表中,即所述文件管理列表中的所述各目標(biāo)文件信息是排序好的。以緩存清理策略為LRU為例,若所述各目標(biāo)文件信息是按照從最早到最近的文件使用時間的順序進(jìn)行排序,則所述文件管理列表中所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,所述文件管理列表中排在最前面的目標(biāo)文件信息對應(yīng)的文件使用時間是最早的,所述文件管理列表中排在最后面的目標(biāo)文件信息對應(yīng)的文件使用時間是最近的。所述確定模塊80,用于當(dāng)檢測到所述目標(biāo)文件信息對應(yīng)的文件被使用時,將文件被使用的所述目標(biāo)文件信息確定為待更新文件信息;具體的,所述添加模塊70將排序后的所述各目標(biāo)文件信息按順序添加至文件管理列表中之后,所述確定模塊80可以通過Linux監(jiān)視文件的inotify接口實時監(jiān)視所述各目標(biāo)文件信息分別對應(yīng)的文件的讀取和寫入,當(dāng)檢測到所述目標(biāo)文件信息對應(yīng)的文件被使用時,說明inotify接口監(jiān)視到該目標(biāo)文件信息對應(yīng)的文件被創(chuàng)建、訪問或?qū)懭?,此時,所述確定模塊80可以將文件被使用的所述目標(biāo)文件信息確定為待更新文件信息。其中,inotify接口對文件進(jìn)行監(jiān)視的事件包括:IN_ACCESS/IN_MODIFY/IN_CREATE/IN_DELETE/IN_DELETE_SELF/IN_MODIFY/IN_MOVE_SELF/IN_MOVED_FROM/IN_MOVED_TO。所述更新模塊90,用于對所述文件管理列表中的所述待更新文件信息對應(yīng)的文件使用信息進(jìn)行更新;所述更新模塊90,還用于根據(jù)更新后的文件使用信息對所述文件管理列表中的所述待更新文件信息進(jìn)行重新排序;具體的,所述確定模塊80將文件被使用的所述目標(biāo)文件信息確定為待更新文件信息之后,所述更新模塊90可以對所述文件管理列表中的所述待更新文件信息對應(yīng)的文件使用信息進(jìn)行更新,并根據(jù)更新后的文件使用信息對所述文件管理列表中的所述待更新文件信息進(jìn)行重新排序,即所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的。例如,若所述文件管理列表中所述各目標(biāo)文件信息是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,則當(dāng)inotify接口檢測到其中一個目標(biāo)文件信息對應(yīng)的文件被訪問時,所 述更新模塊90可以將該目標(biāo)文件信息對應(yīng)的文件使用時間更新為最近的文件使用時間,并將該目標(biāo)文件信息排到最后。通過實時更新目標(biāo)文件信息對應(yīng)的文件使用信息,可以保證在清理緩存數(shù)據(jù)時的準(zhǔn)確性,以避免清理掉最近或經(jīng)常使用的緩存數(shù)據(jù)。所述判斷模塊100,用于在所述緩存清理模塊30對緩存數(shù)據(jù)進(jìn)行清理后,進(jìn)一步判斷所述磁盤空間使用率是否小于第一使用率閾值,且所述索引節(jié)點使用率是否小于第二使用率閾值;所述停止模塊110,用于若所述判斷模塊100判斷均為是,則停止對緩存數(shù)據(jù)的清理;所述緩存清理模塊30,還用于若所述判斷模塊100判斷為否,則進(jìn)一步獲取至少一個新的待清理文件信息,并對所述至少一個新的待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理;具體的,所述緩存清理模塊30對所述至少一個新的待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理之后,所述判斷模塊100繼續(xù)檢測所述磁盤空間使用率和所述索引節(jié)點使用率是否均沒有超標(biāo),若均沒有超標(biāo),則所述停止模塊110停止對緩存數(shù)據(jù)的清理,否則所述緩存清理模塊30繼續(xù)對緩存數(shù)據(jù)進(jìn)行清理,直至所述磁盤空間使用率和所述索引節(jié)點使用率均沒有超標(biāo)。其中,每次進(jìn)行緩存數(shù)據(jù)清理時,被清理的文件數(shù)量均可以為預(yù)設(shè)的文件清理數(shù)量。例如,若所述文件管理列表中所述各目標(biāo)文件信息是按照LRU進(jìn)行排序的,且所述各目標(biāo)文件信息也是按照從最早到最近的文件使用時間的順序進(jìn)行排序的,且目標(biāo)文件信息的數(shù)量為1000個,預(yù)設(shè)的文件清理數(shù)量為100,則所述獲取模塊20在獲取到所述文件管理列表之后,所述緩存清理模塊30可以將所述文件管理列表中前100個目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù)刪除,然后由所述判斷模塊100進(jìn)一步判斷所述磁盤空間使用率是否小于第一使用率閾值,且所述索引節(jié)點使用率是否小于第二使用率閾值,若判斷均為是,則所述停止模塊110停止對緩存數(shù)據(jù)進(jìn)行清理,否則由所述緩存清理模塊30繼續(xù)將所述文件管理列表中的第101個到第200個的目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù)刪除,以此類推,每次進(jìn)行緩存數(shù)據(jù)清理時都按順序刪除100個目標(biāo)文件信息對應(yīng)的緩存數(shù)據(jù),直至所述磁盤空間使用率和所述索引節(jié)點使用率均沒有超標(biāo)。本發(fā)明實施例只需要在預(yù)設(shè)階段,對目錄列表進(jìn)行一次遍歷,后續(xù)在清理緩存數(shù)據(jù)時無需再對 目錄列表進(jìn)行遍歷,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息即可,從而可以避免每次清理緩存時都對目錄列表進(jìn)行遍歷所帶來的巨大開銷。本發(fā)明實施例中,通過檢測磁盤空間使用率和索引節(jié)點使用率,可以在磁盤空間使用率超過第一使用率閾值和/或索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表,文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,再在已按照文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,由于在進(jìn)行緩存清理時,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息,而無需再對指定目錄進(jìn)行遍歷,所以可以在進(jìn)行緩存清理時有效地降低系統(tǒng)負(fù)擔(dān)。請參見圖5,是本發(fā)明實施例提供的又一種緩存數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,所述緩存數(shù)據(jù)處理裝置1000可以包括:至少一個處理器1001,例如CPU,至少一個網(wǎng)絡(luò)接口1004,用戶接口1003,存儲器1005,至少一個通信總線1002。其中,通信總線1002用于實現(xiàn)這些組件之間的連接通信。其中,用戶接口1003可以包括顯示屏(Display)、鍵盤(Keyboard),可選用戶接口1003還可以包括標(biāo)準(zhǔn)的有線接口、無線接口。網(wǎng)絡(luò)接口1004可選的可以包括標(biāo)準(zhǔn)的有線接口、無線接口(如WI-FI接口)。存儲器1005可以是高速RAM存儲器,也可以是非不穩(wěn)定的存儲器(non-volatilememory),例如至少一個磁盤存儲器。存儲器1005可選的還可以是至少一個位于遠(yuǎn)離前述處理器1001的存儲裝置。如圖5所示,作為一種計算機存儲介質(zhì)的存儲器1005中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊、用戶接口模塊以及設(shè)備控制應(yīng)用程序。在圖5所示的緩存數(shù)據(jù)處理裝置1000中,用戶接口1003主要用于為用戶提供輸入的接口,獲取用戶輸出的數(shù)據(jù);而處理器1001可以用于調(diào)用存儲器1005中存儲的設(shè)備控制應(yīng)用程序,并具體執(zhí)行以下步驟:檢測磁盤空間使用率和索引節(jié)點使用率;當(dāng)所述磁盤空間使用率超過第一使用率閾值和/或所述索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表;其中,所述文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的;在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至 少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。在一個實施例中,所述處理器1001還執(zhí)行以下步驟:當(dāng)檢測到所述目標(biāo)文件信息對應(yīng)的文件被使用時,將文件被使用的所述目標(biāo)文件信息確定為待更新文件信息;對所述文件管理列表中的所述待更新文件信息對應(yīng)的文件使用信息進(jìn)行更新;根據(jù)更新后的文件使用信息對所述文件管理列表中的所述待更新文件信息進(jìn)行重新排序。在一個實施例中,所述處理器1001在執(zhí)行檢測磁盤空間使用率和索引節(jié)點使用率之前,還執(zhí)行以下步驟:對目錄列表進(jìn)行遍歷,以獲得所述目錄列表中的各目標(biāo)文件信息;根據(jù)所述各目標(biāo)文件信息分別對應(yīng)的文件使用信息對所述各目標(biāo)文件信息進(jìn)行排序;將排序后的所述各目標(biāo)文件信息按順序添加至文件管理列表中;其中,所述文件使用信息包括文件使用時間或文件使用次數(shù)。在一個實施例中,所述處理器1001在執(zhí)行對目錄列表進(jìn)行遍歷,以獲得所述目錄列表中的各目標(biāo)文件信息之前,還執(zhí)行以下步驟:預(yù)設(shè)第一使用率閾值、第二使用率閾值以及文件清理數(shù)量;其中,所述至少一個待清理文件信息的數(shù)量與所述文件清理數(shù)量相同。在一個實施例中,所述處理器1001在執(zhí)行在已按照所述文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對所述至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理之后,還執(zhí)行以下步驟:判斷所述磁盤空間使用率是否小于第一使用率閾值,且所述索引節(jié)點使用率是否小于第二使用率閾值;若判斷均為是,則停止對緩存數(shù)據(jù)的清理;若判斷為否,則進(jìn)一步獲取至少一個新的待清理文件信息,并對所述至少一個新的待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理。本發(fā)明實施例中,通過檢測磁盤空間使用率和索引節(jié)點使用率,可以在磁 盤空間使用率超過第一使用率閾值和/或索引節(jié)點使用率超過第二使用率閾值時,獲取預(yù)設(shè)的文件管理列表,文件管理列表中的各目標(biāo)文件信息分別對應(yīng)的文件使用信息是實時更新的,再在已按照文件使用信息進(jìn)行排序的各目標(biāo)文件信息中,按順序獲取至少一個目標(biāo)文件信息,以作為至少一個待清理文件信息,并對至少一個待清理文件信息分別對應(yīng)的緩存數(shù)據(jù)進(jìn)行清理,由于在進(jìn)行緩存清理時,只需要在文件管理列表中按順序獲取指定數(shù)量的目標(biāo)文件信息,而無需再對指定目錄進(jìn)行遍歷,所以可以在進(jìn)行緩存清理時有效地降低系統(tǒng)負(fù)擔(dān)。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1