CN105786723A - 基于链表的应用缓存管理方法及装置 - Google Patents
基于链表的应用缓存管理方法及装置 Download PDFInfo
- Publication number
- CN105786723A CN105786723A CN201610145066.9A CN201610145066A CN105786723A CN 105786723 A CN105786723 A CN 105786723A CN 201610145066 A CN201610145066 A CN 201610145066A CN 105786723 A CN105786723 A CN 105786723A
- Authority
- CN
- China
- Prior art keywords
- chained list
- node
- data cached
- memory
- application cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于链表的应用缓存管理方法,包括:在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小;获取所述链表的最大内存及所述链表的当前占用的内存大小;将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。本发明还公开了一种基于链表的应用缓存管理装置。本发明实现了在第一内存小于或等于所述最大内存时将接收到的缓存数据添加至链表中,避免了在新的缓存数据存储过程中链表中缓存数据超过链表的最大内存,提高了缓存数据的存储速度与效率。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种基于链表的应用缓存管理方法及装置。
背景技术
随着移动通讯技术的快速发展,移动终端的应用也越来越丰富。在采用iOS开发应用的过程中,会用到缓存实现各种数据的存储以达到数据高速存取的目的。
目前,采用NSCache(NSCache是iOS引入的一个方便的缓存某些object的类)内存缓存机制的iOS平台,没有严格限制缓存数据占用的内存大小。iOS平台只能在存储新的缓存数据后,若当前存储的缓存数据总的内存超过内存限制,则删除其中最终存储的缓存数据。采用这种存储方式在新的缓存数据存储过程中,缓存数据的总容量可能超出系统的内存限制,导致缓存数据的存储速度及效率低。
发明内容
本发明提供一种基于链表的应用缓存管理方法及装置,旨在解决采用NSCache的iOS平台在新的缓存数据存储过程中,由于缓存数据的总容量可能超出系统的内存限制而导致缓存数据的存储速度及效率低的技术问题。
为实现上述目的,本发明提供的一种基于链表的应用缓存管理方法,所述基于链表的应用缓存管理方法包括以下步骤:
在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小,
获取所述链表的最大内存及所述链表的当前占用的内存大小;
将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;
在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
优选地,将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存的步骤之后,所述基于链表的应用缓存管理方法包括:
在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;
删除所述链表中时间间隔最大的结点;
将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;
在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
优选地,在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表的步骤之后,所述基于链表的应用缓存管理方法还包括:
在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;
基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据。
优选地,基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据的步骤之后,所述基于链表的应用缓存管理方法还包括:
将遍历到的缓存数据对应的结点设置为所述链表的头结点。
优选地,所述链表结点的数据域包含所述链表结点的存活时间,在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表的步骤之后,所述基于链表的应用缓存管理方法还包括:
基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间;
在所述链表结点当前达到所述存活时间时,删除所述链表结点。
此外,为实现上述目的,本发明还提供一种基于链表的应用缓存管理装置,所述基于链表的应用缓存管理装置包括:
创建模块,用于在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小,
第一获取模块,用于获取所述链表的最大内存及所述链表的当前占用的内存大小;
第一计算模块,用于将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;
第一添加模块,用于在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
优选地,所述基于链表的应用缓存管理装置还包括:
第二获取模块,用于在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;
第一删除模块,用于删除所述链表中时间间隔最大的结点;
第二计算模块,用于将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;
第二添加模块,用于在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
优选地,所述基于链表的应用缓存管理装置还包括:
第三获取模块,用于在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;
遍历模块,用于基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据。
优选地,所述基于链表的应用缓存管理装置还包括:
设置模块,用于将遍历到的缓存数据对应的结点设置为所述链表的头结点。
优选地,所述链表结点的数据域包含所述链表结点的存活时间,所述基于链表的应用缓存管理装置还包括:
确定模块,用于基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间;
第二删除模块,用于在所述链表结点当前达到所述存活时间时,删除所述链表结点。
本发明通过在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小;接着获取所述链表的最大内存及所述链表的当前占用的内存大小;然后将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;最后在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表,实现了在第一内存小于或等于所述最大内存时将接收到的缓存数据添加至链表中,避免了在新的缓存数据存储过程中链表中缓存数据超过链表的最大内存,提高了缓存数据的存储速度与效率。
附图说明
图1为本发明基于链表的应用缓存管理方法第一实施例的流程示意图;
图2为本发明基于链表的应用缓存管理方法第二实施例的流程示意图;
图3为本发明基于链表的应用缓存管理方法第三实施例的流程示意图;
图4为本发明基于链表的应用缓存管理方法第四实施例的流程示意图;
图5为本发明基于链表的应用缓存管理装置第一实施例的功能模块示意图;
图6为本发明基于链表的应用缓存管理装置第二实施例的功能模块示意图;
图7为本发明基于链表的应用缓存管理装置第三实施例的功能模块示意图;
图8为本发明基于链表的应用缓存管理装置第四实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于链表的应用缓存管理方法。参照图1,图1为本发明基于链表的应用缓存管理方法第一实施例的流程示意图。
在本实施例中,该基于链表的应用缓存管理方法包括:
步骤S110,在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小;
本实施例中,链表可以为双向链表或单链表,创建链表结点是指将缓存数据存储至新建的链表结点的数据域,其中,新建链表结点的直接后继为当前链表的头结点。同时,获取接收到的缓存数据的内存大小,譬如接收到的缓存数据的内存为50M等。其中,本实施例基于链表的应用缓存管理方法可以应用与iOS平台,譬如开发移动终端各种应用的iOS平台。
步骤S120,获取所述链表的最大内存及所述链表的当前占用的内存大小;
其中,所述链表的最大内存是指在建立链表时设置的链表的最大容量,所述链表的当前占用的内存大小是指链表当前存储的所有缓存数据的内存大小。
步骤S130,将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;
步骤S140,在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
在所述第一内存小于或等于所述最大内存时,表示链表当前存储的缓存数据未超过其最大容量,将所述链表结点添加至所述链表,本实施例中,具体是指将链表结点作为所述链表的头结点。
本实施例中,通过在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小;接着获取所述链表的最大内存及所述链表的当前占用的内存大小;然后将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;最后在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表,实现了在第一内存小于或等于所述最大内存时将接收到的缓存数据添加至链表中,避免了在新的缓存数据存储过程中链表中缓存数据超过链表的最大内存,提高了缓存数据的存储速度与效率。
基于第一实施例提出本发明基于链表的应用缓存管理方法的第二实施例,参照图2,在本实施例中,在步骤S130之后,该基于链表的应用缓存管理方法还包括:
步骤S150,在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;
其中,链表中各个结点的上一次访问时间是指链表中各个结点最后一次被访问的访问时间。
步骤S160,删除所述链表中时间间隔最大的结点;
删除所述链表中时间间隔最大的结点是指删除链表中最后一次被访问的访问时间距当前时间最久的结点,即删除链表中最久没有被访问的结点。
步骤S170,将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;
步骤S180,在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
链表中时间间隔最大的结点被删除以后,在所述第二内存小于或等于所述最大内存时,即链表的当前占用的内存大小与接收到的所述缓存数据的内存大小之和小于最大内存时,将所述链表结点添加至所述链表,本实施例中,具体是指将链表结点作为所述链表的头结点。
本实施例中,通过在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;接着删除所述链表中时间间隔最大的结点;然后将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;最后在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表,实现了在第一内存大于所述最大内存时,首先删除链表中时间间隔最大的结点,以保证第二内存小于或等于所述最大内存,最后将所述链表结点添加至所述链表,进一步避免了在新的缓存数据存储过程中链表中缓存数据超过链表的最大内存,提高了缓存数据的存储速度与效率。
基于第一实施例提出本发明基于链表的应用缓存管理方法的第三实施例,参照图3,在本实施例中,在步骤S40之后,该基于链表的应用缓存管理方法还包括:
步骤S190,在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;
其中,在采用iOS平台开发移动终端各种应用的过程中,需要调用链表内的缓存数据时,生成缓存数据的访问请求,该访问请求携带有缓存数据的标识信息,在接收到缓存数据的访问请求时,解析所述访问请求以获取所述访问请求对应的缓存数据的标识信息。
步骤S200,基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据。
在获得缓存数据的标识信息之后,基于所述标识信息遍历所述链表,以访问所述访问请求对应的缓存数据。现有采用NSCache的iOS平台在缓存数据访问时,需要将标识信息与缓存数据的key进行一一匹配,在各个缓存数据key相似时,即具有大量相似的key时,系统会消耗大量的时间在key的匹配对比上,导致缓存数据的读取性能较低即缓存数据的读取速度及效率较低。
在其他实施例中,在步骤S200之后,该基于链表的应用缓存管理方法还包括:将遍历到的缓存数据对应的结点设置为所述链表的头结点。
通过将遍历到的缓存数据对应的结点设置为所述链表的头结点,使得在后续接收到新的缓存数据时,若所述第一内存大于所述最大内存,则删除所述链表的尾结点;将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。减少了第一内存大于所述最大内存时存储缓存数据的流程,提高了缓存数据的存储速度及效率。
本实施例通过在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;接着基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据,通过根据缓存数据的标识信息遍历所述链表实现了缓存数据的访问,提高了缓存数据读取的速度及效率。
基于第一实施例提出本发明基于链表的应用缓存管理方法的第四实施例,参照图4,在本实施例中,所述链表结点的数据域包含所述链表结点的存活时间,在步骤S40之后,该基于链表的应用缓存管理方法还包括:
步骤S210,基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间;
本实施例中,在存储缓存数据时,创建的链表结点的数据域包含所述链表结点的存活时间,在链表结点添加至链表后开始计时,以确定所述链表结点当前是否达到所述存活时间。
步骤S220,在所述链表结点当前达到所述存活时间时,删除所述链表结点。
本实施例通过基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间,接着在所述链表结点当前达到所述存活时间时,删除所述链表结点,实现了根据链表结点的存活时间删除链表结点,即实现了缓存数据的定时存储,进一步提高了缓存数据的存取效率。
本发明进一步提供一种基于链表的应用缓存管理装置。参照图5,图5为本发明基于链表的应用缓存管理装置第一实施例的功能模块示意图。
在本实施例中,该基于链表的应用缓存管理装置包括:
创建模块110,用于在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小,
本实施例中,链表可以为双向链表或单链表,创建链表结点是指将缓存数据存储至新建的链表结点的数据域,其中,新建链表结点的直接后继为当前链表的头结点。同时,获取接收到的缓存数据的内存大小,譬如接收到的缓存数据的内存为50M等。其中,本实施例基于链表的应用缓存管理方法可以应用与iOS平台,譬如开发移动终端各种应用的iOS平台。
第一获取模块120,用于获取所述链表的最大内存及所述链表的当前占用的内存大小;
其中,所述链表的最大内存是指在建立链表时设置的链表的最大容量,所述链表的当前占用的内存大小是指链表当前存储的所有缓存数据的内存大小。
第一计算模块130,用于将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;
第一添加模块140,用于在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
在所述第一内存小于或等于所述最大内存时,表示链表当前存储的缓存数据未超过其最大容量,第一添加模块140将所述链表结点添加至所述链表,本实施例中,具体是指将链表结点作为所述链表的头结点。
本实施例中,通过在接收到应用的缓存数据时,创建模块110基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小;第一获取模块120接着获取所述链表的最大内存及所述链表的当前占用的内存大小;第一计算模块130然后将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;最后在所述第一内存小于或等于所述最大内存时,第一添加模块140将所述链表结点添加至所述链表,实现了在第一内存小于或等于所述最大内存时将接收到的缓存数据添加至链表中,避免了在新的缓存数据存储过程中链表中缓存数据超过链表的最大内存,提高了缓存数据的存储速度与效率。
基于第一实施例提出本发明基于链表的应用缓存管理装置的第二实施例,参照图6,在本实施例中,该基于链表的应用缓存管理装置还包括:
第二获取模块150,用于在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;
其中,链表中各个结点的上一次访问时间是指链表中各个结点最后一次被访问的访问时间。
第一删除模块160,用于删除所述链表中时间间隔最大的结点;
第一删除模块160删除所述链表中时间间隔最大的结点是指删除链表中最后一次被访问的访问时间距当前时间最久的结点,即删除链表中最久没有被访问的结点。
第二计算模块170,用于将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;
第二添加模块180,用于在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
链表中时间间隔最大的结点被删除以后,在所述第二内存小于或等于所述最大内存时,即链表的当前占用的内存大小与接收到的所述缓存数据的内存大小之和小于最大内存时,第二添加模块180将所述链表结点添加至所述链表,本实施例中,具体是指将链表结点作为所述链表的头结点。
本实施例中,通过在所述第一内存大于所述最大内存时,第二获取模块150获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;接着第一删除模块160删除所述链表中时间间隔最大的结点;然后第二计算模块170将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;最后在所述第二内存小于或等于所述最大内存时,第二添加模块180将所述链表结点添加至所述链表,实现了在第一内存大于所述最大内存时,首先删除链表中时间间隔最大的结点,以保证第二内存小于或等于所述最大内存,最后将所述链表结点添加至所述链表,进一步避免了在新的缓存数据存储过程中链表中缓存数据超过链表的最大内存,提高了缓存数据的存储速度与效率。
基于第一实施例提出本发明基于链表的应用缓存管理装置的第三实施例,参照图7,在本实施例中,该基于链表的应用缓存管理装置还包括:
第三获取模块190,用于在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;
其中,在采用iOS平台开发移动终端各种应用的过程中,需要调用链表内的缓存数据时,生成缓存数据的访问请求,该访问请求携带有缓存数据的标识信息,在接收到缓存数据的访问请求时,第三获取模块190解析所述访问请求以获取所述访问请求对应的缓存数据的标识信息。
遍历模块200,用于基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据。
在获得缓存数据的标识信息之后,基于所述标识信息遍历所述链表,以访问所述访问请求对应的缓存数据。现有采用NSCache的iOS平台在缓存数据访问时,需要将标识信息与缓存数据的key进行一一匹配,在各个缓存数据key相似时,即具有大量相似的key时,系统会消耗大量的时间在key的匹配对比上,导致缓存数据的读取性能较低即缓存数据的读取速度及效率较低。
在其他实施例中,该基于链表的应用缓存管理装置还包括:设置模块,用于将遍历到的缓存数据对应的结点设置为所述链表的头结点。
通过设置模块将遍历到的缓存数据对应的结点设置为所述链表的头结点,使得在后续接收到新的缓存数据时,若所述第一内存大于所述最大内存,则删除所述链表的尾结点;将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。减少了第一内存大于所述最大内存时存储缓存数据的流程,提高了缓存数据的存储速度及效率。
本实施例通过在接收到缓存数据的访问请求时,第三获取模块190获取所述访问请求对应的缓存数据的标识信息;接着遍历模块200基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据,通过根据缓存数据的标识信息遍历所述链表实现了缓存数据的访问,提高了缓存数据读取的速度及效率。
基于第一实施例提出本发明基于链表的应用缓存管理装置的第四实施例,参照图8,在本实施例中,所述链表结点的数据域包含所述链表结点的存活时间,该基于链表的应用缓存管理装置还包括:
确定模块210,用于基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间;
本实施例中,在存储缓存数据时,创建的链表结点的数据域包含所述链表结点的存活时间,在链表结点添加至链表后开始计时,以确定所述链表结点当前是否达到所述存活时间。
第二删除模块220,用于在所述链表结点当前达到所述存活时间时,删除所述链表结点。
本实施例通过确定模块210基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间,接着在所述链表结点当前达到所述存活时间时,第二删除模块220删除所述链表结点,实现了根据链表结点的存活时间删除链表结点,即实现了缓存数据的定时存储,进一步提高了缓存数据的存取效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于链表的应用缓存管理方法,其特征在于,所述基于链表的应用缓存管理方法包括以下步骤:
在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小;
获取所述链表的最大内存及所述链表的当前占用的内存大小;
将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;
在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
2.如权利要求1所述的基于链表的应用缓存管理方法,其特征在于,将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存的步骤之后,所述基于链表的应用缓存管理方法包括:
在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;
删除所述链表中时间间隔最大的结点;
将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;
在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
3.如权利要求1所述的基于链表的应用缓存管理方法,其特征在于,在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表的步骤之后,所述基于链表的应用缓存管理方法还包括:
在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;
基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据。
4.如权利要求3所述的基于链表的应用缓存管理方法,其特征在于,基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据的步骤之后,所述基于链表的应用缓存管理方法还包括:
将遍历到的缓存数据对应的结点设置为所述链表的头结点。
5.如权利要求1至4任一项所述的基于链表的应用缓存管理方法,其特征在于,所述链表结点的数据域包含所述链表结点的存活时间,在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表的步骤之后,所述基于链表的应用缓存管理方法还包括:
基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间;
在所述链表结点当前达到所述存活时间时,删除所述链表结点。
6.一种基于链表的应用缓存管理装置,其特征在于,所述基于链表的应用缓存管理装置包括:
创建模块,用于在接收到应用的缓存数据时,基于接收到的缓存数据创建链表结点,并获取接收到的所述缓存数据的内存大小,
第一获取模块,用于获取所述链表的最大内存及所述链表的当前占用的内存大小;
第一计算模块,用于将接收到的所述缓存数据的内存大小与所述链表的当前占用的内存大小相加以获得第一内存;
第一添加模块,用于在所述第一内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
7.如权利要求6所述的基于链表的应用缓存管理装置,其特征在于,所述基于链表的应用缓存管理装置还包括:
第二获取模块,用于在所述第一内存大于所述最大内存时,获取所述链表中各个结点的上一次访问时间与当前时间的时间间隔;
第一删除模块,用于删除所述链表中时间间隔最大的结点;
第二计算模块,用于将接收到的所述缓存数据的内存大小与结点删除后所述链表的当前占用的内存大小相加以获得第二内存;
第二添加模块,用于在所述第二内存小于或等于所述最大内存时,将所述链表结点添加至所述链表。
8.如权利要求6所述的基于链表的应用缓存管理装置,其特征在于,所述基于链表的应用缓存管理装置还包括:
第三获取模块,用于在接收到缓存数据的访问请求时,获取所述访问请求对应的缓存数据的标识信息;
遍历模块,用于基于所述标识信息遍历所述链表以访问所述访问请求对应的缓存数据。
9.如权利要求8所述的基于链表的应用缓存管理装置,其特征在于,所述基于链表的应用缓存管理装置还包括:
设置模块,用于将遍历到的缓存数据对应的结点设置为所述链表的头结点。
10.如权利要求6至9任一项所述的基于链表的应用缓存管理装置,其特征在于,所述链表结点的数据域包含所述链表结点的存活时间,所述基于链表的应用缓存管理装置还包括:
确定模块,用于基于所述链表结点的创建时间确定所述链表结点当前是否达到所述存活时间;
第二删除模块,用于在所述链表结点当前达到所述存活时间时,删除所述链表结点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610145066.9A CN105786723A (zh) | 2016-03-14 | 2016-03-14 | 基于链表的应用缓存管理方法及装置 |
US15/414,628 US10241927B2 (en) | 2016-03-14 | 2017-01-25 | Linked-list-based method and device for application caching management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610145066.9A CN105786723A (zh) | 2016-03-14 | 2016-03-14 | 基于链表的应用缓存管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105786723A true CN105786723A (zh) | 2016-07-20 |
Family
ID=56393577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610145066.9A Pending CN105786723A (zh) | 2016-03-14 | 2016-03-14 | 基于链表的应用缓存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786723A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017156683A1 (zh) * | 2016-03-14 | 2017-09-21 | 深圳创维-Rgb电子有限公司 | 基于链表的应用缓存管理方法及装置 |
CN108763109A (zh) * | 2018-06-13 | 2018-11-06 | 成都心吉康科技有限公司 | 数据存储方法、装置及其应用 |
CN114337992A (zh) * | 2022-03-09 | 2022-04-12 | 深圳市华星联科技有限公司 | 基于多节点远距离数据低损传输方法 |
CN114461144A (zh) * | 2022-01-19 | 2022-05-10 | 清华大学 | 协同驾驶的数据存储装置、数据处理方法及路侧设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091883A1 (en) * | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Load starvation detector and buster |
CN104808952A (zh) * | 2015-05-05 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | 数据缓存方法及装置 |
CN104850505A (zh) * | 2015-05-26 | 2015-08-19 | 左应鹏 | 基于链式堆叠的内存管理方法与系统 |
CN105224259A (zh) * | 2015-10-22 | 2016-01-06 | 深圳市创想天空科技股份有限公司 | 一种移动终端内存释放方法、装置及移动终端 |
-
2016
- 2016-03-14 CN CN201610145066.9A patent/CN105786723A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091883A1 (en) * | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Load starvation detector and buster |
CN104808952A (zh) * | 2015-05-05 | 2015-07-29 | 百度在线网络技术(北京)有限公司 | 数据缓存方法及装置 |
CN104850505A (zh) * | 2015-05-26 | 2015-08-19 | 左应鹏 | 基于链式堆叠的内存管理方法与系统 |
CN105224259A (zh) * | 2015-10-22 | 2016-01-06 | 深圳市创想天空科技股份有限公司 | 一种移动终端内存释放方法、装置及移动终端 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017156683A1 (zh) * | 2016-03-14 | 2017-09-21 | 深圳创维-Rgb电子有限公司 | 基于链表的应用缓存管理方法及装置 |
CN108763109A (zh) * | 2018-06-13 | 2018-11-06 | 成都心吉康科技有限公司 | 数据存储方法、装置及其应用 |
CN108763109B (zh) * | 2018-06-13 | 2022-04-26 | 成都心吉康科技有限公司 | 数据存储方法、装置及其应用 |
CN114461144A (zh) * | 2022-01-19 | 2022-05-10 | 清华大学 | 协同驾驶的数据存储装置、数据处理方法及路侧设备 |
CN114461144B (zh) * | 2022-01-19 | 2024-04-19 | 清华大学 | 协同驾驶的数据存储装置、数据处理方法及路侧设备 |
CN114337992A (zh) * | 2022-03-09 | 2022-04-12 | 深圳市华星联科技有限公司 | 基于多节点远距离数据低损传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103313350B (zh) | 一种双频网络接入方法、装置及接入点设备 | |
CN105786723A (zh) | 基于链表的应用缓存管理方法及装置 | |
CN106657213A (zh) | 文件传输方法和装置 | |
CN109688097A (zh) | 网站防护方法、网站防护装置、网站防护设备及存储介质 | |
CN107786638B (zh) | 一种数据处理方法、装置及系统 | |
CN102682037A (zh) | 一种数据获取方法、系统及装置 | |
CN105279163A (zh) | 一种缓存数据的更新及存储方法及其系统 | |
CN104794228A (zh) | 一种搜索结果提供方法及装置 | |
CN111858520B (zh) | 一种区块链节点数据分离存储的方法和装置 | |
CN111198856A (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN104253836B (zh) | 基于无线网络的图片显示方法、移动终端和系统 | |
CN104657435A (zh) | 一种应用数据的存储管理方法和网络管理系统 | |
CN103049574B (zh) | 实现文件动态副本的键值文件系统及方法 | |
CN106708825A (zh) | 一种数据文件处理方法及系统 | |
CN111930305A (zh) | 数据的存储方法和装置、存储介质、电子装置 | |
CN104753922A (zh) | 用于预加载的方法、服务端、客户端及系统 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN113645140B (zh) | 报文的统计方法、装置、存储介质及网络设备 | |
CN111858612B (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
US10241927B2 (en) | Linked-list-based method and device for application caching management | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN103532920A (zh) | cookie更新方法以及cookie更新系统 | |
CN109617708B (zh) | 一种埋点日志的压缩方法、设备及系统 | |
CN116301656A (zh) | 基于日志结构合并树的数据存储方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1224766 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160720 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1224766 Country of ref document: HK |