一种缓存数据处理方法以及装置与流程

文档序号:12363564阅读:169来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种缓存数据处理方法以及装置。
背景技术
::Linux是一套免费使用和自由传播的类unix操作系统,是一个基于POSIX(PortableOperatingSystemInterface,可移植操作系统接口)和unix的多用户、多任务、支持多线程和多CPU(CentralProcessingUnit,中央处理器)的操作系统。基于Linux操作系统的应用程序,经常会使用文件系统作为数据缓存,但是当应用程序使用了大量的文件作为数据缓存时,就会面临缓存管理问题,此时,需要定期对文件进行清理,以免磁盘空间不足。常见的缓存清理算法有LFU(leastfrequentlyused,最近最不经常使用算法)和LRU(LeastRecentlyUsed,最近最久未使用算法)等。目前常见的文件清理方法是通过shell脚本遍历查找指定目录,按文件的访问时间、编辑时间等信息进行清理。但是当文件过多时,对指定目录进行遍历的开销会很大,使得每次进行缓存清理都会使系统负担加重。技术实现要素:本发明实施例提供一种缓存数据处理方法以及装置,可以在进行缓存清理时降低系统负担。本发明实施例提供了一种缓存数据处理方法,包括:检测磁盘空间使用率和索引节点使用率;当所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表;其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的;在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待 清理文件信息分别对应的缓存数据进行清理。相应地,本发明实施例还提供了一种缓存数据处理装置,包括:检测模块,用于检测磁盘空间使用率和索引节点使用率;获取模块,用于当所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表;其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的;缓存清理模块,用于在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理。本发明实施例中,通过检测磁盘空间使用率和索引节点使用率,可以在磁盘空间使用率超过第一使用率阈值和/或索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表,文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,再在已按照文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对至少一个待清理文件信息分别对应的缓存数据进行清理,由于在进行缓存清理时,只需要在文件管理列表中按顺序获取指定数量的目标文件信息,而无需再对指定目录进行遍历,所以可以在进行缓存清理时有效地降低系统负担。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种缓存数据处理方法的流程示意图;图2是本发明实施例提供的另一种缓存数据处理方法的流程示意图;图3是本发明实施例提供的一种缓存数据处理装置的结构示意图;图4是本发明实施例提供的另一种缓存数据处理装置的结构示意图;图5是本发明实施例提供的又一种缓存数据处理装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参见图1,是本发明实施例提供的一种缓存数据处理方法的流程示意图,所述方法可以包括:S101,检测磁盘空间使用率和索引节点使用率;具体的,定时检查磁盘空间使用率和索引节点(inode)使用率,例如,默认每10秒检查一次磁盘空间使用率和索引节点使用率。在获取到所述磁盘空间使用率和所述索引节点使用率后,可以判断所述磁盘空间使用率是否超过第一使用率阈值,并判断所述索引节点使用率是否超过第二使用率阈值。其中,所述第一使用率阈值和所述第二使用率阈值均是预先进行设置的。S102,当所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表;其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的;具体的,当判断出所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,可以获取预设的文件管理列表。其中,在S101步骤之前,先配置需要进行监视的目录列表以及缓存清理策略,再对所述目录列表进行遍历,以得到所述目录列表中的所有文件信息,并将所有文件信息分别确定为目标文件信息,再根据各目标文件信息分别对应的文件使用信息对所述各目标文件信息进行排序。其中,若缓存清理策略为LRU,则所述文件使用信息包括文件使用时间,即文件最后一次被使用的时间;若缓存清理策略为LFU,则所述文件使用信息包括文件使用次数,即在最近一段时间内文件被使用的次数;文件被使用的情况可以包括文件被创建、写入、访问等事件。例如,若所述文件使用信息包括文件使用时间,则可以将最早的文件使用时间对应的目标文件信息排在最前面,即将最久未使用的文件所对应的目标文件信息排在最前面,并按照从最早到最近的文件使用时间的顺序对各目标文件信息进行排序,其中,最近使用的文件所对应的目标文件信息排在最后面。又例如,若所述文件使用信息包括文件使用次数,则可以将文件使用次数最少的目标文件信息排在最前面,并按照文件使用次数从少到多的顺序对各目标文件 信息进行排序,其中,使用次数最多的目标文件信息排在最后面。对所述各目标文件信息进行排序之后,再将排序好后的所述各目标文件信息按顺序添加至文件管理列表中,即所述文件管理列表中的所述各目标文件信息是排序好的。以缓存清理策略为LRU为例,若所述各目标文件信息是按照从最早到最近的文件使用时间的顺序进行排序,则所述文件管理列表中所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,所述文件管理列表中排在最前面的目标文件信息对应的文件使用时间是最早的,所述文件管理列表中排在最后面的目标文件信息对应的文件使用时间是最近的。优选地,当检测到所述目标文件信息对应的文件被使用时,即目标文件信息对应的文件被创建、访问、写入等等时,将文件被使用的所述目标文件信息确定为待更新文件信息;对所述文件管理列表中的所述待更新文件信息对应的文件使用信息进行更新,并根据更新后的文件使用信息对所述文件管理列表中的所述待更新文件信息进行重新排序,即所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的。例如,若所述文件管理列表中所述各目标文件信息是按照LRU进行排序的,且所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,则当检测到其中一个目标文件信息对应的文件被使用时,可以将该目标文件信息对应的文件使用时间更新为最近的,并将该目标文件信息排到最后。通过实时更新目标文件信息对应的文件使用信息,可以保证在清理缓存数据时的准确性,以避免清理掉最近或经常使用的缓存数据。S103,在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理;具体的,在获取到预设的文件管理列表之后,可以在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理。其中,获取到的所述至少一个目标文件信息的数量可以为预设的文件清理数量。例如,若所述文件管理列表中所述各目标文件信息是按照LRU进行排序的,且所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,且目标文件信息的数量为1000个,预设的文件清理数量 为100,则在获取到所述文件管理列表之后,可以将所述文件管理列表中前100个目标文件信息对应的缓存数据删除。本发明实施例只需要在预设阶段,对目录列表进行一次遍历,后续在清理缓存数据时无需再对目录列表进行遍历,只需要在文件管理列表中按顺序获取指定数量的目标文件信息即可,从而可以避免每次清理缓存时都对目录列表进行遍历所带来的巨大开销。本发明实施例中,通过检测磁盘空间使用率和索引节点使用率,可以在磁盘空间使用率超过第一使用率阈值和/或索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表,文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,再在已按照文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对至少一个待清理文件信息分别对应的缓存数据进行清理,由于在进行缓存清理时,只需要在文件管理列表中按顺序获取指定数量的目标文件信息,而无需再对指定目录进行遍历,所以可以在进行缓存清理时有效地降低系统负担。再请参见图2,是本发明实施例提供的另一种缓存数据处理方法的流程示意图,所述方法可以包括:S201,预设第一使用率阈值、第二使用率阈值以及文件清理数量;具体的,预设第一使用率阈值、第二使用率阈值以及文件清理数量,进一步还可以预先配置需要进行监视的目录列表以及缓存清理策略。其中,所述第一使用率阈值是用于检测磁盘空间使用率是否达到需要进行缓存清理的临界点,所述第二使用率阈值是用于检测索引节点使用率是否达到需要进行缓存清理的临界点,所述文件清理数量为每次进行缓存清理时所需清理的文件数量。其中,所述缓存清理策略包括LRU或LFU。S202,对目录列表进行遍历,以获得所述目录列表中的各目标文件信息;具体的,通过异步的方式对目录列表进行描述,即对目录列表进行遍历,以获得所述目录列表中的各目标文件信息。S203,根据所述各目标文件信息分别对应的文件使用信息对所述各目标文件信息进行排序;具体的,根据所述各目标文件信息分别对应的文件使用信息对所述各目标文件信息进行排序。其中,若缓存清理策略为LRU,则所述文件使用信息包括文件使用时间,即文件最后一次被使用的时间;若缓存清理策略为LFU,则所 述文件使用信息包括文件使用次数,即在最近一段时间内文件被使用的次数;文件被使用的情况可以包括文件被创建、写入、访问等事件。例如,若所述文件使用信息包括文件使用时间,则可以将最早的文件使用时间对应的目标文件信息排在最前面,即将最久未使用的文件所对应的目标文件信息排在最前面,并按照从最早到最近的文件使用时间的顺序对各目标文件信息进行排序,其中,最近使用的文件所对应的目标文件信息排在最后面。又例如,若所述文件使用信息包括文件使用次数,则可以将文件使用次数最少的目标文件信息排在最前面,并按照文件使用次数从少到多的顺序对各目标文件信息进行排序,其中,使用次数最多的目标文件信息排在最后面。S204,将排序后的所述各目标文件信息按顺序添加至文件管理列表中;具体的,对所述各目标文件信息进行排序之后,再将排序好后的所述各目标文件信息按顺序添加至文件管理列表中,即所述文件管理列表中的所述各目标文件信息是排序好的。以缓存清理策略为LRU为例,若所述各目标文件信息是按照从最早到最近的文件使用时间的顺序进行排序,则所述文件管理列表中所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,所述文件管理列表中排在最前面的目标文件信息对应的文件使用时间是最早的,所述文件管理列表中排在最后面的目标文件信息对应的文件使用时间是最近的。优选地,在生成包含有所述各目标文件信息的文件管理列表之后,可以通过Linux监视文件的inotify(inotify是一个Linux特性,它监控文件系统操作,比如读取、写入和创建)接口实时监视所述各目标文件信息分别对应的文件的读取和写入,当检测到所述目标文件信息对应的文件被使用时,说明inotify接口监视到该目标文件信息对应的文件被创建、访问或写入,此时,可以将文件被使用的所述目标文件信息确定为待更新文件信息;对所述文件管理列表中的所述待更新文件信息对应的文件使用信息进行更新,并根据更新后的文件使用信息对所述文件管理列表中的所述待更新文件信息进行重新排序,即所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的。其中,inotify接口对文件进行监视的事件包括:IN_ACCESS/IN_MODIFY/IN_CREATE/IN_DELETE/IN_DELETE_SELF/IN_MODIFY/IN_MOVE_SELF/IN_MOVED_FROM/IN_MOVED_TO。例如,若所述文件管理列表中所述各目 标文件信息是按照从最早到最近的文件使用时间的顺序进行排序的,则当inotify接口检测到其中一个目标文件信息对应的文件被访问时,可以将该目标文件信息对应的文件使用时间更新为最近的文件使用时间,并将该目标文件信息排到最后。其中,对目标文件信息对应的文件使用信息进行更新的步骤可以在以下S205至S207步骤中的任一时刻进行。本发明实施例通过实时更新目标文件信息对应的文件使用信息,可以保证在清理缓存数据时的准确性,以避免清理掉最近或经常使用的缓存数据。S205,检测磁盘空间使用率和索引节点使用率;具体的,定时检查磁盘空间使用率和索引节点使用率,例如,默认每10秒检查一次磁盘空间使用率和索引节点使用率。在获取到所述磁盘空间使用率和所述索引节点使用率后,可以判断所述磁盘空间使用率是否超过第一使用率阈值,并判断所述索引节点使用率是否超过第二使用率阈值。S206,当所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表;其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的;具体的,当判断出所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,可以获取预设的文件管理列表,即开始启动数据缓存清理功能。所获取到的文件管理列表中的所述各目标文件信息是已经根据文件使用信息排序好的,且所述各目标文件信息分别对应的文件使用信息是实时更新的,即所述各目标文件信息分别对应的文件使用时间或文件使用次数是最新的状态。S207,在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理;具体的,在获取到预设的文件管理列表之后,可以在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理。其中,获取到的所述至少一个目标文件信息的数量可以为预设的文件清理数量。可选地,在进行一次缓存数据清理之后,可以进一步判断所述磁盘空间使 用率是否小于第一使用率阈值,且所述索引节点使用率是否小于第二使用率阈值;若判断均为是,则停止对缓存数据的清理;若判断为否,则进一步获取至少一个新的待清理文件信息,即重新按顺序获取至少一个新的目标文件信息,以作为至少一个新的待清理文件信息,再对所述至少一个新的待清理文件信息分别对应的缓存数据进行清理,然后继续检测所述磁盘空间使用率和所述索引节点使用率是否均没有超标,若均没有超标,则停止对缓存数据的清理,否则继续对缓存数据进行清理,直至所述磁盘空间使用率和所述索引节点使用率均没有超标。其中,每次进行缓存数据清理时,被清理的文件数量均可以为预设的文件清理数量。例如,若所述文件管理列表中所述各目标文件信息是按照LRU进行排序的,且所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,且目标文件信息的数量为1000个,预设的文件清理数量为100,则在获取到所述文件管理列表之后,可以将所述文件管理列表中前100个目标文件信息对应的缓存数据删除,然后进一步判断所述磁盘空间使用率是否小于第一使用率阈值,且所述索引节点使用率是否小于第二使用率阈值,若判断均为是,则停止对缓存数据的清理,否则继续将所述文件管理列表中的第101个到第200个的目标文件信息对应的缓存数据删除,以此类推,每次进行缓存数据清理时都按顺序删除100个目标文件信息对应的缓存数据,直至所述磁盘空间使用率和所述索引节点使用率均没有超标。本发明实施例只需要在预设阶段,对目录列表进行一次遍历,后续在清理缓存数据时无需再对目录列表进行遍历,只需要在文件管理列表中按顺序获取指定数量的目标文件信息即可,从而可以避免每次清理缓存时都对目录列表进行遍历所带来的巨大开销。本发明实施例中,通过检测磁盘空间使用率和索引节点使用率,可以在磁盘空间使用率超过第一使用率阈值和/或索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表,文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,再在已按照文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对至少一个待清理文件信息分别对应的缓存数据进行清理,由于在进行缓存清理时,只需要在文件管理列表中按顺序获取指定数量的目标文件信息,而无需再对指定目录进行遍历,所以可以在进行缓存清理时有效地降低系统负担。请参见图3,是本发明实施例提供的一种缓存数据处理装置的结构示意图,所述缓存数据处理装置1可以包括:检测模块10、获取模块20、缓存清理模块30;所述检测模块10,用于检测磁盘空间使用率和索引节点使用率;具体的,所述检测模块10可以定时检查磁盘空间使用率和索引节点使用率,例如,所述检测模块10可以每10秒检查一次磁盘空间使用率和索引节点使用率。在获取到所述磁盘空间使用率和所述索引节点使用率后,所述检测模块10可以进一步判断所述磁盘空间使用率是否超过第一使用率阈值,并判断所述索引节点使用率是否超过第二使用率阈值。其中,所述第一使用率阈值和所述第二使用率阈值均是预先进行设置的。所述获取模块20,用于当所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表;其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的;具体的,当所述检测模块10判断出所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,所述获取模块20可以获取预设的文件管理列表。其中,所述文件管理列表中的所述各目标文件信息是通过预先对目录列表进行遍历所得到的,且所述文件管理列表中的所述各目标文件信息是已根据文件使用信息所排序好的。其中,可以通过预设缓存清理策略以确定文件使用信息,例如,若缓存清理策略为LRU,则所述文件使用信息包括文件使用时间,即文件最后一次被使用的时间;若缓存清理策略为LFU,则所述文件使用信息包括文件使用次数,即在最近一段时间内文件被使用的次数;文件被使用的情况可以包括文件被创建、写入、访问等事件。其中,若所述文件使用信息包括文件使用时间,则所述文件管理列表中的所述各目标文件信息是按照从最早到最近的文件使用时间的顺序进行排序的;若所述文件使用信息包括文件使用次数,则所述文件管理列表中的所述各目标文件信息是按照文件使用次数从少到多的顺序进行排序的。其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,因此,所述文件管理列表中的各目标文件信息的排序位置也是实时更新的,以保证在清理缓存数据时的准确性,避免清理掉最近或经常使用的 缓存数据。所述缓存清理模块30,用于在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理;具体的,在所述获取模块20获取到预设的文件管理列表之后,所述缓存清理模块30可以在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理。其中,获取到的所述至少一个目标文件信息的数量可以为预设的文件清理数量。例如,若所述文件管理列表中所述各目标文件信息是按照LRU进行排序的,且所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,且目标文件信息的数量为1000个,预设的文件清理数量为100,则所述获取模块20在获取到所述文件管理列表之后,所述缓存清理模块30可以将所述文件管理列表中前100个目标文件信息对应的缓存数据删除。本发明实施例只需要在预设阶段,对目录列表进行一次遍历,后续在清理缓存数据时无需再对目录列表进行遍历,只需要在文件管理列表中按顺序获取指定数量的目标文件信息即可,从而可以避免每次清理缓存时都对目录列表进行遍历所带来的巨大开销。本发明实施例中,通过检测磁盘空间使用率和索引节点使用率,可以在磁盘空间使用率超过第一使用率阈值和/或索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表,文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,再在已按照文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对至少一个待清理文件信息分别对应的缓存数据进行清理,由于在进行缓存清理时,只需要在文件管理列表中按顺序获取指定数量的目标文件信息,而无需再对指定目录进行遍历,所以可以在进行缓存清理时有效地降低系统负担。再请参见图4,是本发明实施例提供的另一种缓存数据处理装置的结构示意图,所述缓存数据处理装置1可以包括上述图3对应实施例中的检测模块10、获取模块20、缓存清理模块30,进一步的,所述缓存数据处理装置1还可以包括:预设模块40、遍历模块50、排序模块60、添加模块70、确定模块80、更新模块90、判断模块100、停止模块110;所述预设模块40,用于预设第一使用率阈值、第二使用率阈值以及文件清理数量;具体的,所述预设模块40可以预设第一使用率阈值、第二使用率阈值以及文件清理数量,所述预设模块40还可以预先配置需要进行监视的目录列表以及缓存清理策略。其中,所述第一使用率阈值是用于检测磁盘空间使用率是否达到需要进行缓存清理的临界点,所述第二使用率阈值是用于检测索引节点使用率是否达到需要进行缓存清理的临界点,所述文件清理数量为每次进行缓存清理时所需清理的文件数量。其中,所述缓存清理策略包括LRU或LFU。所述遍历模块50,用于对目录列表进行遍历,以获得所述目录列表中的各目标文件信息;具体的,所述预设模块40设置好相关参数后,所述遍历模块50可以通过异步的方式对目录列表进行描述,即对目录列表进行遍历,以获得所述目录列表中的各目标文件信息。所述排序模块60,用于根据所述各目标文件信息分别对应的文件使用信息对所述各目标文件信息进行排序;具体的,所述遍历模块50对目录列表进行遍历之后,所述排序模块60可以根据所述各目标文件信息分别对应的文件使用信息对所述各目标文件信息进行排序。其中,若缓存清理策略为LRU,则所述文件使用信息包括文件使用时间,即文件最后一次被使用的时间;若缓存清理策略为LFU,则所述文件使用信息包括文件使用次数,即在最近一段时间内文件被使用的次数;文件被使用的情况可以包括文件被创建、写入、访问等事件。例如,若所述文件使用信息包括文件使用时间,则所述排序模块60可以将最早的文件使用时间对应的目标文件信息排在最前面,即将最久未使用的文件所对应的目标文件信息排在最前面,并按照从最早到最近的文件使用时间的顺序对各目标文件信息进行排序,其中,最近使用的文件所对应的目标文件信息排在最后面。又例如,若所述文件使用信息包括文件使用次数,则所述排序模块60可以将文件使用次数最少的目标文件信息排在最前面,并按照文件使用次数从少到多的顺序对各目标文件信息进行排序,其中,使用次数最多的目标文件信息排在最后面。所述添加模块70,用于将排序后的所述各目标文件信息按顺序添加至文件 管理列表中;具体的,所述排序模块60对所述各目标文件信息进行排序之后,所述添加模块70将排序好后的所述各目标文件信息按顺序添加至文件管理列表中,即所述文件管理列表中的所述各目标文件信息是排序好的。以缓存清理策略为LRU为例,若所述各目标文件信息是按照从最早到最近的文件使用时间的顺序进行排序,则所述文件管理列表中所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,所述文件管理列表中排在最前面的目标文件信息对应的文件使用时间是最早的,所述文件管理列表中排在最后面的目标文件信息对应的文件使用时间是最近的。所述确定模块80,用于当检测到所述目标文件信息对应的文件被使用时,将文件被使用的所述目标文件信息确定为待更新文件信息;具体的,所述添加模块70将排序后的所述各目标文件信息按顺序添加至文件管理列表中之后,所述确定模块80可以通过Linux监视文件的inotify接口实时监视所述各目标文件信息分别对应的文件的读取和写入,当检测到所述目标文件信息对应的文件被使用时,说明inotify接口监视到该目标文件信息对应的文件被创建、访问或写入,此时,所述确定模块80可以将文件被使用的所述目标文件信息确定为待更新文件信息。其中,inotify接口对文件进行监视的事件包括:IN_ACCESS/IN_MODIFY/IN_CREATE/IN_DELETE/IN_DELETE_SELF/IN_MODIFY/IN_MOVE_SELF/IN_MOVED_FROM/IN_MOVED_TO。所述更新模块90,用于对所述文件管理列表中的所述待更新文件信息对应的文件使用信息进行更新;所述更新模块90,还用于根据更新后的文件使用信息对所述文件管理列表中的所述待更新文件信息进行重新排序;具体的,所述确定模块80将文件被使用的所述目标文件信息确定为待更新文件信息之后,所述更新模块90可以对所述文件管理列表中的所述待更新文件信息对应的文件使用信息进行更新,并根据更新后的文件使用信息对所述文件管理列表中的所述待更新文件信息进行重新排序,即所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的。例如,若所述文件管理列表中所述各目标文件信息是按照从最早到最近的文件使用时间的顺序进行排序的,则当inotify接口检测到其中一个目标文件信息对应的文件被访问时,所 述更新模块90可以将该目标文件信息对应的文件使用时间更新为最近的文件使用时间,并将该目标文件信息排到最后。通过实时更新目标文件信息对应的文件使用信息,可以保证在清理缓存数据时的准确性,以避免清理掉最近或经常使用的缓存数据。所述判断模块100,用于在所述缓存清理模块30对缓存数据进行清理后,进一步判断所述磁盘空间使用率是否小于第一使用率阈值,且所述索引节点使用率是否小于第二使用率阈值;所述停止模块110,用于若所述判断模块100判断均为是,则停止对缓存数据的清理;所述缓存清理模块30,还用于若所述判断模块100判断为否,则进一步获取至少一个新的待清理文件信息,并对所述至少一个新的待清理文件信息分别对应的缓存数据进行清理;具体的,所述缓存清理模块30对所述至少一个新的待清理文件信息分别对应的缓存数据进行清理之后,所述判断模块100继续检测所述磁盘空间使用率和所述索引节点使用率是否均没有超标,若均没有超标,则所述停止模块110停止对缓存数据的清理,否则所述缓存清理模块30继续对缓存数据进行清理,直至所述磁盘空间使用率和所述索引节点使用率均没有超标。其中,每次进行缓存数据清理时,被清理的文件数量均可以为预设的文件清理数量。例如,若所述文件管理列表中所述各目标文件信息是按照LRU进行排序的,且所述各目标文件信息也是按照从最早到最近的文件使用时间的顺序进行排序的,且目标文件信息的数量为1000个,预设的文件清理数量为100,则所述获取模块20在获取到所述文件管理列表之后,所述缓存清理模块30可以将所述文件管理列表中前100个目标文件信息对应的缓存数据删除,然后由所述判断模块100进一步判断所述磁盘空间使用率是否小于第一使用率阈值,且所述索引节点使用率是否小于第二使用率阈值,若判断均为是,则所述停止模块110停止对缓存数据进行清理,否则由所述缓存清理模块30继续将所述文件管理列表中的第101个到第200个的目标文件信息对应的缓存数据删除,以此类推,每次进行缓存数据清理时都按顺序删除100个目标文件信息对应的缓存数据,直至所述磁盘空间使用率和所述索引节点使用率均没有超标。本发明实施例只需要在预设阶段,对目录列表进行一次遍历,后续在清理缓存数据时无需再对 目录列表进行遍历,只需要在文件管理列表中按顺序获取指定数量的目标文件信息即可,从而可以避免每次清理缓存时都对目录列表进行遍历所带来的巨大开销。本发明实施例中,通过检测磁盘空间使用率和索引节点使用率,可以在磁盘空间使用率超过第一使用率阈值和/或索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表,文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,再在已按照文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对至少一个待清理文件信息分别对应的缓存数据进行清理,由于在进行缓存清理时,只需要在文件管理列表中按顺序获取指定数量的目标文件信息,而无需再对指定目录进行遍历,所以可以在进行缓存清理时有效地降低系统负担。请参见图5,是本发明实施例提供的又一种缓存数据处理装置的结构示意图,所述缓存数据处理装置1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。在图5所示的缓存数据处理装置1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输出的数据;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,并具体执行以下步骤:检测磁盘空间使用率和索引节点使用率;当所述磁盘空间使用率超过第一使用率阈值和/或所述索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表;其中,所述文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的;在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至 少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理。在一个实施例中,所述处理器1001还执行以下步骤:当检测到所述目标文件信息对应的文件被使用时,将文件被使用的所述目标文件信息确定为待更新文件信息;对所述文件管理列表中的所述待更新文件信息对应的文件使用信息进行更新;根据更新后的文件使用信息对所述文件管理列表中的所述待更新文件信息进行重新排序。在一个实施例中,所述处理器1001在执行检测磁盘空间使用率和索引节点使用率之前,还执行以下步骤:对目录列表进行遍历,以获得所述目录列表中的各目标文件信息;根据所述各目标文件信息分别对应的文件使用信息对所述各目标文件信息进行排序;将排序后的所述各目标文件信息按顺序添加至文件管理列表中;其中,所述文件使用信息包括文件使用时间或文件使用次数。在一个实施例中,所述处理器1001在执行对目录列表进行遍历,以获得所述目录列表中的各目标文件信息之前,还执行以下步骤:预设第一使用率阈值、第二使用率阈值以及文件清理数量;其中,所述至少一个待清理文件信息的数量与所述文件清理数量相同。在一个实施例中,所述处理器1001在执行在已按照所述文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对所述至少一个待清理文件信息分别对应的缓存数据进行清理之后,还执行以下步骤:判断所述磁盘空间使用率是否小于第一使用率阈值,且所述索引节点使用率是否小于第二使用率阈值;若判断均为是,则停止对缓存数据的清理;若判断为否,则进一步获取至少一个新的待清理文件信息,并对所述至少一个新的待清理文件信息分别对应的缓存数据进行清理。本发明实施例中,通过检测磁盘空间使用率和索引节点使用率,可以在磁 盘空间使用率超过第一使用率阈值和/或索引节点使用率超过第二使用率阈值时,获取预设的文件管理列表,文件管理列表中的各目标文件信息分别对应的文件使用信息是实时更新的,再在已按照文件使用信息进行排序的各目标文件信息中,按顺序获取至少一个目标文件信息,以作为至少一个待清理文件信息,并对至少一个待清理文件信息分别对应的缓存数据进行清理,由于在进行缓存清理时,只需要在文件管理列表中按顺序获取指定数量的目标文件信息,而无需再对指定目录进行遍历,所以可以在进行缓存清理时有效地降低系统负担。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1