CN113395369B - 一种缓存管理方法、装置、电子设备及存储介质 - Google Patents
一种缓存管理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113395369B CN113395369B CN202110650655.3A CN202110650655A CN113395369B CN 113395369 B CN113395369 B CN 113395369B CN 202110650655 A CN202110650655 A CN 202110650655A CN 113395369 B CN113395369 B CN 113395369B
- Authority
- CN
- China
- Prior art keywords
- cache
- records
- record
- weight
- dns
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000004458 analytical method Methods 0.000 claims description 73
- 230000004044 response Effects 0.000 claims description 56
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000004083 survival effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 abstract description 16
- 230000037430 deletion Effects 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种缓存管理方法、装置、电子设备及存储介质,该方法包括:对缓存表中的缓存记录进行计算,获得缓存记录的权重值;对缓存记录的权重值进行统计,获得缓存表的总权重;根据缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据多个权重阈值确定缓存记录的优先级;按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。在上述的实现过程中,通过动态地计算出缓存记录的权重阈值,并根据该权重阈值对缓存表中的缓存记录进行优先级划分和删除,即使缓存记录的过期时间没有达到,也能够根据划分的优先级删除缓存记录,有效地删除了使用频率低的缓存记录,提高了缓存表的利用率。
Description
技术领域
本申请涉及计算机和缓存管理的技术领域,具体而言,涉及一种缓存管理方法、装置、电子设备及存储介质。
背景技术
域名***(Domain Name System,DNS)是互联网的一项服务,DNS作为将域名和网际协议(Internet Protocol,IP)地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
目前的缓存表通常是设置缓存记录的过期时间(Expire Time),过期时间例如:1分钟、3分钟或者1小时等等,若过期时间到达且没有更新过期时间,则缓存表会自动删除该缓存记录。然而,在缓存表的使用过程中发现,当缓存表中的缓存记录满时,就无法存入新的缓存记录。需要等缓存表中的缓存记录的过期时间达到且被删除后,才能够存入新的缓存记录,使得缓存表的利用率比较低。
发明内容
本申请实施例的目的在于提供一种缓存管理方法、装置、电子设备及存储介质,用于改善缓存表的利用率比较低的问题。
本申请实施例提供了一种缓存管理方法,包括:对缓存表中的缓存记录进行计算,获得缓存记录的权重值;对缓存记录的权重值进行统计,获得缓存表的总权重;根据缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据多个权重阈值确定缓存记录的优先级;按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。在上述的实现过程中,通过动态地计算出缓存记录的权重阈值,并根据该权重阈值对缓存表中的缓存记录进行优先级划分和删除,即使缓存记录的过期时间没有达到,也能够根据划分的优先级删除缓存记录,有效地删除了使用频率低的缓存记录,提高了缓存表的利用率。
可选地,在本申请实施例中,缓存记录包括:域名***DNS解析请求;在对缓存表中的缓存记录进行计算之前,还包括:判断在预设时长内DNS解析请求的接收数量是否超过预设阈值;若是,则停止修改缓存表,以防止缓存表被攻击。在上述的实现过程中,通过确定在预设时长内DNS解析请求的接收数量是否超过预设阈值,则停止修改缓存表,从而避免了缓存表被DNS攻击的问题,有效地提高了计算缓存记录的权重和优先级的准确性。
可选地,在本申请实施例中,缓存记录还包括:DNS解析请求对应的DNS应答信息;在判断在预设时长内DNS解析请求的接收数量是否超过预设阈值之后,还包括:若在预设时长内接收到的DNS解析请求的数量没有超过预设阈值,则获取DNS解析请求对应的DNS应答信息,并根据DNS解析请求对应的DNS应答信息修改缓存表。在上述的实现过程中,通过确定在预设时长内接收到的DNS解析请求的数量没有超过预设阈值,就根据DNS解析请求对应的DNS应答信息修改缓存表,避免了使用DNS解析请求来增加大量无效的缓存记录,从而导致缓存表被快速填满的问题,有效地提高了缓存表的利用率。
可选地,在本申请实施例中,对缓存表中的缓存记录进行计算,获得缓存记录的权重值,包括:从缓存记录中获取DNS解析请求的主机数量和DNS解析请求的应答次数;对DNS解析请求的主机数量和DNS解析请求的应答次数进行计算,获得缓存记录的权重值。在上述的实现过程中,通过DNS解析请求的主机数量和DNS解析请求的应答次数计算出缓存记录的权重值,从而使得缓存记录的权重值计算得更加准确。
可选地,在本申请实施例中,根据缓存表的总权重和缓存记录的总数量确定多个权重阈值,包括:将缓存表的总权重除以缓存记录的总数量,获得缓存记录的平均权重;将缓存记录的平均权重乘以预设比例,获得权重阈值。在上述的实现过程中,通过动态地根据缓存记录的平均权重来确定权重阈值,从而避免了使用一个静态阈值导致优先级划分不合理的问题,从而使得缓存记录的优先级计算得更加准确。
可选地,在本申请实施例中,还包括:判断缓存表中的缓存记录数量是否等于或者大于缓存表的预设存储记录数量;若是,则按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录,或者,执行对缓存表中的缓存记录进行计算,获得缓存记录的权重值。在上述的实现过程中,通过在缓存表中的缓存记录数量满足删除条件时,就实时地计算优先级后删除缓存记录,从而避免了优先级更新延迟导致原本为高优先级的缓存记录被当作低优先级的缓存记录删除。通过在缓存表中的缓存记录数量满足删除条件时,就立即删除缓存记录,从而有效地加快了DNS解析速度。
可选地,在本申请实施例中,按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录,包括:判断缓存表中是否存在优先级相同的缓存记录;若是,则从缓存记录对应的应答信息中获取缓存记录的生存时间值,并按照缓存记录的生存时间值从小到大的顺序,来删除缓存表中的缓存记录。在上述的实现过程中,根据优先级从低到高的顺序,以及生存时间值从小到大的顺序,来删除缓存表中的缓存记录,从而避免了同等优先级情况下删除了生存时间值较大的缓存记录的问题,有效地提高了缓存表的利用率和命中率。
本申请实施例还提供了一种缓存管理装置,包括:缓存权重获得模块,用于对缓存表中的缓存记录进行计算,获得缓存记录的权重值;表总权重获得模块,用于对缓存记录的权重值进行统计,获得缓存表的总权重;优先级别确定模块,用于根据缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据多个权重阈值确定缓存记录的优先级;缓存记录删除模块,用于按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。
可选地,在本申请实施例中,缓存记录包括:域名***DNS解析请求;缓存管理装置,还包括:请求数量判断模块,用于判断在预设时长内DNS解析请求的接收数量是否超过预设阈值;缓存停止修改模块,用于若在预设时长内DNS解析请求的接收数量超过预设阈值,则停止修改缓存表,以防止缓存表被攻击。
可选地,在本申请实施例中,缓存记录还包括:DNS解析请求对应的DNS应答信息;缓存管理装置,还包括:缓存表修改模块,用于若在预设时长内接收到的DNS解析请求的数量没有超过预设阈值,则获取DNS解析请求对应的DNS应答信息,并根据DNS解析请求对应的DNS应答信息修改缓存表。
可选地,在本申请实施例中,缓存权重获得模块,包括:请求信息获取模块,用于从缓存记录中获取DNS解析请求的主机数量和DNS解析请求的应答次数;缓存权重技术模块,用于对DNS解析请求的主机数量和DNS解析请求的应答次数进行计算,获得缓存记录的权重值。
可选地,在本申请实施例中,优先级别确定模块,包括:平均权重获得模块,用于将缓存表的总权重除以缓存记录的总数量,获得缓存记录的平均权重;权重阈值获得模块,用于将缓存记录的平均权重乘以预设比例,获得权重阈值。
可选地,在本申请实施例中,还包括:记录数量判断模块,用于判断缓存表中的缓存记录数量是否等于或者大于缓存表的预设存储记录数量;删除步骤执行模块,用于若缓存表中的缓存记录数量等于或者大于缓存表的预设存储记录数量,则按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录,或者,执行对缓存表中的缓存记录进行计算,获得缓存记录的权重值。
可选地,在本申请实施例中,缓存记录删除模块,包括:优先级相同判断模块,用于判断缓存表中是否存在优先级相同的缓存记录;缓存记录删除子模块,用于若缓存表中是否存在优先级相同的缓存记录,则从缓存记录对应的应答信息中获取缓存记录的生存时间值,并按照缓存记录的生存时间值从小到大的顺序,来删除缓存表中的缓存记录。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的缓存管理方法的流程示意图;
图2示出的本申请实施例提供的不同主机对应DNS解析请求的应答次数的示意图;
图3示出的本申请实施例提供的缓存管理装置的结构示意图;
图4示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。
在介绍本申请实施例提供的缓存管理方法之前,先介绍本申请实施例中所涉及的一些概念:
DNS攻击(DNS Attack),又被称为DNS洪水攻击(DNS Flooding Attack),是一种针对DNS的拒绝服务攻击,目的是令该网络的资源耗尽,导致业务暂时中断或停止。攻击者发出的大量请求到该资源或服务器,使其正常用户无法访问。在DNS洪水攻击中,由于超负荷的流量,受影响的主机连接到该DNS时连线会中断。
需要说明的是,本申请实施例提供的缓存管理方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digitalassistant,PDA)或者移动上网设备(mobile Internet device,MID)等;服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
在介绍本申请实施例提供的缓存管理方法之前,先介绍该缓存管理方法适用的应用场景,这里的应用场景包括但不限于:使用该缓存管理方法优化服务器上的缓存数据库或者缓存表等,或者,直接使用该缓存管理方法增强缓存数据库或者缓存表的功能效果,从而提高缓存数据库或者缓存表的利用率和命中率。
请参见图1示出的本申请实施例提供的缓存管理方法的流程示意图;该缓存管理方法的主要思路是,通过动态地计算出缓存记录的权重阈值,并根据该权重阈值对缓存表中的缓存记录进行优先级划分和删除,即使缓存记录的过期时间没有达到,也能够根据划分的优先级删除缓存记录,有效地删除了使用频率低的缓存记录,提高了缓存表的利用率;上述的缓存管理方法可以包括:
步骤S110:对缓存表中的缓存记录进行计算,获得缓存记录的权重值。
其中,上述的缓存表可以采用Redis数据库或者Memcached数据库等等,该缓存表中的缓存记录可以包括:域名***DNS解析请求和该DNS解析请求对应的DNS应答信息。
可选地,在对缓存表中的缓存记录进行计算之前,还可以检测DNS攻击,具体的检测DNS攻击的过程可以包括:
步骤S111:电子设备判断在预设时长内DNS解析请求的接收数量是否超过预设阈值。
上述步骤S111的实施方式例如:上述的电子设备可以是域名服务器的缓存服务器,该电子设备可以接收局域网(Local Area Network,LAN)内其他主机的DNS解析请求,该DNS解析请求用于请求该DNS对应的IP地址。电子设备在接收到其他主机发送的DNS解析请求之后,电子设备可以判断在预设时长内DNS解析请求的接收数量是否超过预设阈值;其中,预设阈值是指预先设置的限制阈值,该预设阈值可以根据具体实际情况进行设置,例如:可以设置为200、500或9000等;预设时长是指预先设置的时间长度,这里的预设时长可以根据实际情况进行设置,例如:预设时长可以设置为一分钟或者十分钟,预设时长也可以为一小时或三小时。
步骤S112:若在预设时长内DNS解析请求的接收数量超过预设阈值,则电子设备停止修改缓存表,以防止缓存表被攻击。
上述步骤S112的实施方式例如:在受到DNS攻击情况下,短时间内DNS解析请求的报文会激增,激增的报文会影响到计算权重值的准确性。因此,为了提高计算权重值的准确性,如果在预设时长内DNS解析请求的接收数量超过预设阈值,则停止修改缓存表,以节约计算资源,从而防止缓存表被DNS攻击;此处的预设阈值和预设时长的解释见上面步骤S111中的描述。
步骤S113:若在预设时长内接收到的DNS解析请求的数量没有超过预设阈值,则电子设备获取DNS解析请求对应的DNS应答信息,并根据DNS解析请求对应的DNS应答信息修改缓存表。
上述都不在S113的实施方式例如:若在预设时长内接收到的DNS解析请求的数量没有超过预设阈值,则电子设备接收计算设备发送的该DNS解析请求,并向域名服务器发送该DNS解析请求,以使该域名服务器返回该DNS解析请求对应的应答信息。在电子设备向域名服务器发送该DNS解析请求之后,电子设备可以接收域名服务器发送的DNS解析请求对应的DNS应答信息,并根据DNS解析请求对应的DNS应答信息修改缓存表;此处的预设阈值和预设时长的解释见上面步骤S111中的描述。
上述步骤S110的权重值计算方式有很多种,包括但不限于如下几种:
第一种权重值计算方式,当缓存记录在缓存表中的标准差为0时,根据DNS解析请求的主机数量和DNS解析请求的应答次数来计算缓存记录的权重值,该权重值计算方式可以包括:从缓存记录中获取DNS解析请求的主机数量和DNS解析请求的应答次数;根据公式对DNS解析请求的主机数量和DNS解析请求的应答次数进行计算,获得缓存记录的权重值;其中,wi表示第i个缓存记录的权重值,N表示该缓存记录对应DNS解析请求的主机数量,即请求解析该缓存记录对应DNS的主机数量,Cj表示第j个主机请求该缓存记录对应DNS解析请求的应答次数。
第二种权重值计算方式,当缓存记录在缓存表中的标准差不为0时,根据缓存记录在缓存表中的标准差、DNS解析请求的主机数量和DNS解析请求的应答次数来计算缓存记录的权重值,该权重值计算方式可以包括:从缓存记录中获取DNS解析请求的主机数量和DNS解析请求的应答次数;根据公式对DNS解析请求的主机数量和DNS解析请求的应答次数进行计算,获得缓存记录的权重值;其中,表示该缓存记录在缓存表中的标准差,wi表示第i个缓存记录的权重值,N表示该缓存记录对应DNS解析请求的主机数量,即请求解析该缓存记录对应DNS的主机数量,Cj表示第j个主机请求该缓存记录对应DNS解析请求的应答次数。
可以理解的是,上述的标准差可以根据公式来计算获得;其中,表示该缓存记录在缓存表中的标准差,N表示该缓存记录对应DNS解析请求的主机数量,Ci表示第i个主机请求该缓存记录对应DNS解析请求的应答次数,C表示每个主机对应该DNS解析请求的应答次数平均值。
第三种权重值计算方式,结合上述第一种权重值计算方式和第二种权重值计算方式进行计算;具体例如:若缓存记录在缓存表中的标准差为0,则采用上述第一种权重值计算方式计算缓存记录的权重值;若缓存记录在缓存表中的标准差不为0,则采用上述第二种权重值计算方式计算缓存记录的权重值,具体的例子如下面步骤S120中的描述。
在具体的实施过程中,如果服务器遇到被重启或者被意外断电时,那么服务器启动后的缓存表会被清空;在缓存表被清空之后,上述的DNS解析请求的主机数量和/或DNS解析请求的应答次数需要被归零,并重新开始计算DNS解析请求的主机数量和DNS解析请求的应答次数,从而保证权重值计算的准确性。
在步骤S110之后,执行步骤S120:对缓存记录的权重值进行统计,获得缓存表的总权重。
请参见图2示出的本申请实施例提供的不同主机对应DNS解析请求的应答次数的示意图;上述步骤S120的实施方式例如:对缓存记录的权重值进行统计,获得缓存表的总权重;为了更加清楚地描述上述权重值的计算过程和对缓存记录的权重值进行统计的计算过程,下面假设此处共有A、B、C和D四个主机,假设缓存表中共有x、y和z这三条记录,且主机请求该缓存记录对应DNS解析请求的应答次数如图2所示;由图2可知,缓存记录x的标准差是不为0的,因此可以计算出缓存记录x的权重值为:
同理,可以计算出缓存记录y的权重值为wy=201.18;缓存记录x的权重值为wz=200。因此,缓存表的总权重为W=wx+wy+wz=608.36。
从上面的例子可以得出:第一,将缓存记录x、y和z对比来看,当缓存记录对应的DNS解析请求的总应答次数相同,且该DNS解析请求的主机数量不同时,该缓存记录的权重是不相同的。第二,将缓存记录x和y对比来看,当缓存记录对应的DNS解析请求的总应答次数相同,且该DNS解析请求的主机数量也相同时,该缓存记录的权重也是不相同的。因此,可以看出,缓存记录的权重值是由DNS解析请求的主机数量、总应答次数、应答次数平均值和每个主机的应答次数共同决定的,从而使得缓存记录的权重值更加准确。
在步骤S120之后,执行步骤S130:根据缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据多个权重阈值确定缓存记录的优先级。
上述步骤S130的实施方式有很多种,包括但不限于如下几种:
第一种实施方式,根据缓存表中的缓存记录的平均权重来确定权重阈值,然后根据权重阈值确定缓存记录的优先级,该实施方式可以包括:
步骤S131:将缓存表的总权重除以缓存记录的总数量,获得缓存记录的平均权重。
步骤S132:将缓存记录的平均权重乘以多个预设比例,获得多个权重阈值。
其中,上述多个预设比例是根据具体需求设置的,例如:将缓存表中的缓存记录划分为三种优先级:高优先级、中优先级和低优先级,高优先级与中优先级之间的第一间隔预设比例为100%,中优先级与低优先级之间的第二间隔预设比例为99%。当然,也可以根据具体需求将缓存表中的缓存记录划分为两种优先级:第一优先级和第二优先级,然后根据具体情况设置第一优先级和第二优先级之间的间隔预设比例。
上述步骤S132的实施方式例如:将缓存记录的平均权重乘以第一间隔预设比例100%,获得第一权重阈值为w1=202.78;同理,将缓存记录的平均权重乘以第二间隔预设比例99%,获得第二权重阈值为w2=200.75。
步骤S133:根据多个权重阈值确定缓存记录的优先级。
上述步骤S133的实施方式例如:根据第一权重阈值w1=202.78和第二权重阈值w2=200.75分别确定x、y和z三条缓存记录的优先级,x、y和z三条缓存记录的权重值分别为wx=207.18、wy=201.18和wz=200;由此可得,x、y和z三条缓存记录的优先级分别为高优先级、中优先级和低优先级。
第二种实施方式,根据缓存表的总权重对缓存记录的权重值进行排序,并将缓存记录的总数量乘以多个预设比例,获得多个权重阈值,根据多个权重阈值确定排序后的缓存表中缓存记录的优先级;该实施方式包括:
步骤S134:根据缓存表的总权重对缓存记录的权重值进行排序,获得排序后的缓存表。
上述步骤S134的实施方式例如:根据缓存表的总权重对每条缓存记录的权重值进行归一化,并将归一化后的缓存记录进行排序,获得排序后的缓存表;具体例如:假设缓存表的总权重为W=608.36,且缓存表共有x、y和z三条缓存记录,这三条缓存记录的权重值分别为wx=207.18、wy=201.18和wz=200;那么这三条缓存记录的权重值被归一化之后分别为wx=0.34、wy=0.331和wz=0.329。
步骤S135:将排序后的缓存表中缓存记录的总数量乘以多个预设比例,获得多个数量阈值。
上述步骤S135的实施方式例如:假设排序后的缓存表中缓存记录的总数量为200条,将排序后的缓存表中的缓存记录划分为三种优先级:高优先级、中优先级和低优先级,高优先级与中优先级之间的第一间隔预设比例为50%,中优先级与低优先级之间的第二间隔预设比例为30%;那么容易计算得出,高优先级的缓存记录有100条,中优先级的缓存记录有60条,低优先级的缓存记录有40条。同上,预设比例是根据具体需求设置的。
步骤S136:根据多个数量阈值确定排序后的缓存表中缓存记录的优先级。
其中,该步骤S136的实施原理和实施方式与步骤S133的实施原理和实施方式是类似的,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤S133的描述。
在步骤S130之后,执行步骤S140:按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。
上述的步骤S140中的缓存记录删除方式有很多种,同时,触发删除条件也有很多种:定期删除,或者,缓存表已满或快要满时删除。为了便于理解,下面仅以删除条件为缓存表已满或快要满时删除为例进行详细地说明,上述的缓存记录的删除方式包括:
第一种缓存记录删除方式,若缓存表没有达到删除条件,则定期计算缓存记录的优先级;若缓存表达到删除条件,则根据定期计算出的优先级进行删除,该缓存记录删除方式可以包括:
步骤S141:判断缓存表中的缓存记录数量是否等于或者大于缓存表的预设存储记录数量。
其中,上述的预设存储记录数量包括:缓存表所能够存储的最大缓存记录数量,即缓存表已满的状态,或者,缓存表所能够存储的最大缓存记录数量乘以预设比例的缓存记录数量,可以是缓存表所能够存储的最大缓存记录数量的90%或者95%等等。
上述步骤S141的实施方式例如:判断缓存表中的缓存记录数量是否等于或者大于缓存表的预设存储记录数量,具体例如:当预设存储记录数量是缓存表所能够存储的最大缓存记录数量时,则需要判断缓存表中的缓存记录数量是否等于缓存表的预设存储记录数量。当预设存储记录数量是缓存表所能够存储的最大缓存记录数量乘以预设比例的缓存记录数量时,则需要判断缓存表中的缓存记录数量是否大于缓存表的预设存储记录数量。
步骤S142:若缓存表中的缓存记录数量小于缓存表的预设存储记录数量,则定期计算缓存表中的缓存记录的优先级。
上述步骤S142的实施方式例如:假设预设存储记录数量为四条,且目前缓存表中的缓存记录数量为三条,那么缓存表中的缓存记录数量很明显是小于缓存表的预设存储记录数量的,可以定期计算出这三条缓存记录的优先级分别为:高优先级、中优先级和低优先级。
步骤S143:若缓存表中的缓存记录数量等于或者大于缓存表的预设存储记录数量,则按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。
上述步骤S143的实施方式例如:可以理解的是,该缓存表中加入的缓存记录可以将其优先级直接设置为最高级,可以在下一次计算优先级时再改变该缓存记录的优先级。假设预设存储记录数量为四条,且加入了一条优先级为高的缓存记录,那么目前缓存表中的缓存记录数量变为四条,很明显地,缓存表中的缓存记录数量是等于缓存表的预设存储记录数量的,那么按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录,删除的顺序分别为:低优先级的缓存记录、中优先级的缓存记录和高优先级的缓存记录。
第二种缓存记录删除方式,若缓存表达到删除条件,则实时计算优先级,根据实时计算出的优先级进行删除,该缓存记录删除方式可以包括:
步骤S144:判断缓存表中的缓存记录数量是否等于或者大于缓存表的预设存储记录数量。
其中,该步骤S144的实施原理和实施方式与步骤S141的实施原理和实施方式是类似的,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤S141的描述。
步骤S145:若缓存表中的缓存记录数量等于或者大于缓存表的预设存储记录数量,则直接返回执行步骤S110。
第三种缓存记录删除方式,依次按照优先级和DNS解析响应中的生存时间值(TimeTo Live,TTL)来删除,该缓存记录删除方式可以包括:
步骤S146:判断缓存表中是否存在优先级相同的缓存记录。
上述步骤S146的实施方式例如:假设缓存表共有四条缓存记录,这四条缓存记录的优先级分别为:低优先级、中优先级和高优先级;那么很明显地,缓存表中存在优先级相同的缓存记录的。
步骤S147:若缓存表中存在优先级相同的缓存记录,则从缓存记录对应的DNS应答信息中获取缓存记录的生存时间值,并按照缓存记录的生存时间值从小到大的顺序,来删除缓存表中的缓存记录。
可以理解的是,上述的第一种缓存记录删除方式和第二种缓存记录删除方式限制的是缓存记录的删除触发时间,而第三种缓存记录删除方式限制的是缓存记录的删除顺序。因此,第一种缓存记录删除方式和第三种缓存记录删除方式可以结合为一个技术方案,该技术方案为,若缓存表没有达到删除条件,则定期计算缓存记录的优先级;若缓存表达到删除条件,则根据定期计算出的优先级和生存时间值(TTL)进行删除。第二种缓存记录删除方式和第三种缓存记录删除方式也可以结合为一个技术方案,该技术方案为,若缓存表达到删除条件,则实时计算优先级,根据实时计算出的优先级和生存时间值(TTL)进行删除。
在上述的实现过程中,首先计算出缓存记录的权重值,并对缓存记录的权重值进行统计,然后,通过缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据多个权重阈值确定缓存记录的优先级,最后,按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。也就是说,通过动态地计算出缓存记录的权重阈值,并根据该权重阈值对缓存表中的缓存记录进行优先级划分和删除,即使缓存记录的过期时间没有达到,也能够根据划分的优先级删除缓存记录,有效地删除了使用频率低的缓存记录,提高了缓存表的利用率。
请参见图3示出的本申请实施例提供的缓存管理装置的结构示意图;本申请实施例提供了一种缓存管理装置200,包括:
缓存权重获得模块210,用于对缓存表中的缓存记录进行计算,获得缓存记录的权重值。
表总权重获得模块220,用于对缓存记录的权重值进行统计,获得缓存表的总权重。
优先级别确定模块230,用于根据缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据多个权重阈值确定缓存记录的优先级。
缓存记录删除模块240,用于按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录。
可选地,在本申请实施例中,缓存记录包括:域名***DNS解析请求;缓存管理装置,还包括:
请求数量判断模块,用于判断在预设时长内DNS解析请求的接收数量是否超过预设阈值。
缓存停止修改模块,用于若在预设时长内DNS解析请求的接收数量超过预设阈值,则停止修改缓存表,以防止缓存表被攻击。
可选地,在本申请实施例中,缓存记录还包括:DNS解析请求对应的DNS应答信息;缓存管理装置,还包括:
缓存表修改模块,用于若在预设时长内接收到的DNS解析请求的数量没有超过预设阈值,则获取DNS解析请求对应的DNS应答信息,并根据DNS解析请求对应的DNS应答信息修改缓存表。
可选地,在本申请实施例中,缓存权重获得模块,包括:
请求信息获取模块,用于从缓存记录中获取DNS解析请求的主机数量和DNS解析请求的应答次数。
缓存权重技术模块,用于对DNS解析请求的主机数量和DNS解析请求的应答次数进行计算,获得缓存记录的权重值。
可选地,在本申请实施例中,优先级别确定模块,包括:
平均权重获得模块,用于将缓存表的总权重除以缓存记录的总数量,获得缓存记录的平均权重。
权重阈值获得模块,用于将缓存记录的平均权重乘以预设比例,获得权重阈值。
可选地,在本申请实施例中,还包括:
记录数量判断模块,用于判断缓存表中的缓存记录数量是否等于或者大于缓存表的预设存储记录数量。
删除步骤执行模块,用于若缓存表中的缓存记录数量等于或者大于缓存表的预设存储记录数量,则按照缓存记录的优先级从低到高的顺序删除缓存表中的缓存记录,或者,执行对缓存表中的缓存记录进行计算,获得缓存记录的权重值。
可选地,在本申请实施例中,缓存记录删除模块,包括:
优先级相同判断模块,用于判断缓存表中是否存在优先级相同的缓存记录。
缓存记录删除子模块,用于若缓存表中是否存在优先级相同的缓存记录,则从缓存记录对应的应答信息中获取缓存记录的生存时间值,并按照缓存记录的生存时间值从小到大的顺序,来删除缓存表中的缓存记录。
应理解的是,该装置与上述的缓存管理方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作***(operating system,OS)中的软件功能模块。
请参见图4示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质330,该计算机可读存储介质330上存储有计算机程序,该计算机程序被处理器310运行时执行如上的方法。
其中,计算机可读存储介质330可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (8)
1.一种缓存管理方法,其特征在于,包括:
对缓存表中的缓存记录进行计算,获得所述缓存记录的权重值;
对所述缓存记录的权重值进行统计,获得所述缓存表的总权重;
根据所述缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据所述多个权重阈值确定所述缓存记录的优先级;
按照所述缓存记录的优先级从低到高的顺序删除所述缓存表中的缓存记录;
其中,所述缓存记录包括:域名***DNS解析请求;所述对缓存表中的缓存记录进行计算,获得所述缓存记录的权重值,包括:从所述缓存记录中获取所述DNS解析请求的主机数量和所述DNS解析请求的应答次数;根据公式和对所述DNS解析请求的主机数量和所述DNS解析请求的应答次数进行计算,获得所述缓存记录的权重值;其中,表示该缓存记录在缓存表中的标准差,wi表示第i个缓存记录的权重值,N表示该缓存记录对应DNS解析请求的主机数量,即请求解析该缓存记录对应DNS的主机数量,Cj表示第j个主机请求该缓存记录对应DNS解析请求的应答次数,Ci表示第i个主机请求该缓存记录对应DNS解析请求的应答次数,表示每个主机对应该DNS解析请求的应答次数平均值;
所述按照所述缓存记录的优先级从低到高的顺序删除所述缓存表中的缓存记录,包括:判断所述缓存表中是否存在优先级相同的缓存记录;若是,则从所述缓存记录对应的应答信息中获取所述缓存记录的生存时间值,并按照所述缓存记录的生存时间值从小到大的顺序,来删除所述缓存表中的缓存记录。
2.根据权利要求1所述的方法,其特征在于,所述缓存记录包括:域名***DNS解析请求;在所述对缓存表中的缓存记录进行计算之前,还包括:
判断在预设时长内所述DNS解析请求的接收数量是否超过预设阈值;
若是,则停止修改所述缓存表,以防止所述缓存表被攻击。
3.根据权利要求2所述的方法,其特征在于,所述缓存记录还包括:所述DNS解析请求对应的DNS应答信息;在所述判断在预设时长内所述DNS解析请求的接收数量是否超过预设阈值之后,还包括:
若在预设时长内接收到的DNS解析请求的数量没有超过所述预设阈值,则获取所述DNS解析请求对应的DNS应答信息,并根据所述DNS解析请求对应的DNS应答信息修改所述缓存表。
4.根据权利要求1所述的方法,其特征在于,所述根据所述缓存表的总权重和缓存记录的总数量确定多个权重阈值,包括:
将所述缓存表的总权重除以所述缓存记录的总数量,获得缓存记录的平均权重;
将所述缓存记录的平均权重乘以预设比例,获得所述权重阈值。
5.根据权利要求1-4任一所述的方法,其特征在于,还包括:
判断所述缓存表中的缓存记录数量是否等于或者大于所述缓存表的预设存储记录数量;
若是,则按照所述缓存记录的优先级从低到高的顺序删除所述缓存表中的缓存记录,或者,执行所述对缓存表中的缓存记录进行计算,获得所述缓存记录的权重值。
6.一种缓存管理装置,其特征在于,包括:
缓存权重获得模块,用于对缓存表中的缓存记录进行计算,获得所述缓存记录的权重值;
表总权重获得模块,用于对所述缓存记录的权重值进行统计,获得所述缓存表的总权重;
优先级别确定模块,用于根据所述缓存表的总权重和缓存记录的总数量确定多个权重阈值,并根据所述多个权重阈值确定所述缓存记录的优先级;
缓存记录删除模块,用于按照所述缓存记录的优先级从低到高的顺序删除所述缓存表中的缓存记录;
其中,所述缓存记录包括:域名***DNS解析请求;所述对缓存表中的缓存记录进行计算,获得所述缓存记录的权重值,包括:从所述缓存记录中获取所述DNS解析请求的主机数量和所述DNS解析请求的应答次数;根据公式和对所述DNS解析请求的主机数量和所述DNS解析请求的应答次数进行计算,获得所述缓存记录的权重值;其中,表示该缓存记录在缓存表中的标准差,wi表示第i个缓存记录的权重值,N表示该缓存记录对应DNS解析请求的主机数量,即请求解析该缓存记录对应DNS的主机数量,Cj表示第j个主机请求该缓存记录对应DNS解析请求的应答次数,Ci表示第i个主机请求该缓存记录对应DNS解析请求的应答次数,C表示每个主机对应该DNS解析请求的应答次数平均值;
所述按照所述缓存记录的优先级从低到高的顺序删除所述缓存表中的缓存记录,包括:判断所述缓存表中是否存在优先级相同的缓存记录;若是,则从所述缓存记录对应的应答信息中获取所述缓存记录的生存时间值,并按照所述缓存记录的生存时间值从小到大的顺序,来删除所述缓存表中的缓存记录。
7.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至5任一所述的方法。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110650655.3A CN113395369B (zh) | 2021-06-10 | 2021-06-10 | 一种缓存管理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110650655.3A CN113395369B (zh) | 2021-06-10 | 2021-06-10 | 一种缓存管理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113395369A CN113395369A (zh) | 2021-09-14 |
CN113395369B true CN113395369B (zh) | 2022-12-13 |
Family
ID=77620438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110650655.3A Active CN113395369B (zh) | 2021-06-10 | 2021-06-10 | 一种缓存管理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113395369B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584623B (zh) * | 2022-03-10 | 2024-03-29 | 广州方硅信息技术有限公司 | 流量请求清理方法、装置、存储介质以及计算机设备 |
CN116824923A (zh) * | 2023-08-30 | 2023-09-29 | 四川九洲空管科技有限责任公司 | 一种动态优化ads-b航迹质量的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491075A (zh) * | 2013-09-09 | 2014-01-01 | 中国科学院计算机网络信息中心 | 动态调整dns递归服务器缓存资源记录的方法和*** |
CN112579652A (zh) * | 2020-12-28 | 2021-03-30 | 咪咕文化科技有限公司 | 缓存数据的删除方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002354048A (ja) * | 2001-05-29 | 2002-12-06 | Matsushita Electric Ind Co Ltd | ルータ装置 |
CN111198793A (zh) * | 2018-11-19 | 2020-05-26 | 北京京东尚科信息技术有限公司 | 数据删除方法及***、介质及计算机*** |
CN110557464A (zh) * | 2019-09-05 | 2019-12-10 | 网宿科技股份有限公司 | Dns解析方法、权威dns服务器和dns解析*** |
CN112883307B (zh) * | 2021-02-03 | 2023-10-20 | 深圳市大成天下信息技术有限公司 | 一种缓存更新方法、装置和社交网络*** |
-
2021
- 2021-06-10 CN CN202110650655.3A patent/CN113395369B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491075A (zh) * | 2013-09-09 | 2014-01-01 | 中国科学院计算机网络信息中心 | 动态调整dns递归服务器缓存资源记录的方法和*** |
CN112579652A (zh) * | 2020-12-28 | 2021-03-30 | 咪咕文化科技有限公司 | 缓存数据的删除方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113395369A (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113395369B (zh) | 一种缓存管理方法、装置、电子设备及存储介质 | |
CN110519183B (zh) | 一种节点限速的方法、装置、电子设备及存储介质 | |
US8984058B2 (en) | Pre-fetching remote resources | |
CN109582684B (zh) | 一种本地缓存数据的更新方法、装置、服务器及存储介质 | |
US8280970B2 (en) | Method and apparatus for improving data transfers in peer-to-peer networks | |
CN106230997B (zh) | 一种资源调度方法和装置 | |
US10120872B2 (en) | Data caching based on requestor identity | |
US10182033B1 (en) | Integration of service scaling and service discovery systems | |
CN112153170B (zh) | 访问服务器的方法、装置、设备及存储介质 | |
CN111212391B (zh) | 短信推送方法、装置、设备及可读介质 | |
EP3952233A1 (en) | Tcp congestion control method, apparatus, terminal, and readable storage medium | |
CN112019533A (zh) | 一种缓解CDN***被DDoS攻击的方法及*** | |
CN111381988A (zh) | 一种请求限速方法、装置、电子设备及存储介质 | |
CN110311963B (zh) | 消息推送方法、装置、计算机设备及计算机可读存储介质 | |
US10135916B1 (en) | Integration of service scaling and external health checking systems | |
CN113760982B (zh) | 一种数据处理方法和装置 | |
CN110891090B (zh) | 一种请求方法、装置、服务端、***及存储介质 | |
CN110324339B (zh) | 基于信息熵的DDoS攻击检测方法、装置和电子设备 | |
CN107005433B (zh) | 一种流表项的定时处理方法及装置 | |
CN111565195A (zh) | 分布式***的挑战黑洞攻击防御方法和分布式*** | |
CN113821414B (zh) | 一种服务器保护方法、装置、电子设备及存储介质 | |
CN110855806A (zh) | 域名请求处理方法及装置、服务器 | |
CN114124797B (zh) | 一种服务器路由方法、装置、电子设备及存储介质 | |
US11392408B1 (en) | System and method for assigning tasks to computer system elements | |
CN111371675B (zh) | 智能寻址方法、装置、设备及其存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |