CN115858423A - 缓存淘汰策略的切换方法、装置、电子设备及存储介质 - Google Patents
缓存淘汰策略的切换方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115858423A CN115858423A CN202211663989.5A CN202211663989A CN115858423A CN 115858423 A CN115858423 A CN 115858423A CN 202211663989 A CN202211663989 A CN 202211663989A CN 115858423 A CN115858423 A CN 115858423A
- Authority
- CN
- China
- Prior art keywords
- cache
- information
- slave
- state information
- data
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种缓存淘汰策略的切换方法、装置、电子设备及存储介质,应用于分布式服务器集群,具体的,响应于状态信息统计指令,获取缓存状态信息,其中,状态统计信息指令用于统计至少一个服务器的状态信息,状态信息至少包括:相应服务器所在数据服务器的处理器使用状况以及内存使用状况,进一步的,根据缓存状态信息,从缓存特征库中,获得匹配的目标信息特征,并根据目标信息特征,从缓存淘汰策略集合中,获得并切换至匹配的目标缓存淘汰策略,基于上述方式,通过状态信息统计指令获取更丰富的缓存状态信息,从而基于缓存状态信息确定目标信息特征以及匹配的目标缓存淘汰策略,进而有效提升了待切换的目标缓存淘汰策略的准确性。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种缓存淘汰策略的切换方法、装置、电子设备及存储介质。
背景技术
缓存是一种用于为数据交换提供缓冲,进而加快数据读取速度,提升用户交互式体验的一项重要技术,其中,为实现对缓存空间的有效管理,出现了多种缓存淘汰策略,由于实际状况中,不同缓存淘汰策略所适用的业务场景通常不同,因而常需要在业务变更时将当前业务匹配缓存淘汰策略切换至最新业务匹配的缓存淘汰策略,以最大化保证缓存的运行效率。
现有技术中,通过统计对逻辑单元LU的输入输出IO访问信息,获取LU的全局IO访问特征,并根据LU的全局IO访问特征,将当前业务匹配缓存淘汰策略切换至最新业务匹配的缓存淘汰策略,这一方式容易因统计信息不够丰富,而导致待切换的缓存淘汰策略的准确率不高,例如,在若LU在交互过程中出现异常和中断时,其统计的输入输出IO访问信息也将受到很大的影响,进而导致获取到的全局IO访问特征不够精确,使得后续切换至不恰当的缓存淘汰策略,影响缓存系统的稳定性。
发明内容
本申请实施例提供一种缓存淘汰策略的切换方法、装置、电子设备及存储介质,用于解决现有技术中因统计信息不够丰富而导致的待切换缓存淘汰策略的准确率不高的问题。
第一方面,本申请实施例提供一种缓存淘汰策略的切换方法,应用于分布式服务器集群,包括:
响应于状态信息统计指令,获取缓存状态信息,其中,所述状态统计信息指令用于统计至少一个服务器的状态信息,所述状态信息至少包括:相应服务器的处理器使用状况以及内存使用状况;
根据所述缓存状态信息,从缓存特征库中,获得匹配的目标信息特征;
根据所述目标信息特征,从缓存淘汰策略集合中,获得匹配的目标缓存淘汰策略;
将当前缓存淘汰策略,切换至所述目标缓存淘汰策略。
在一种可选的实施例中,所述分布式服务器集群为远程字典服务Redis服务器集群,所述Redis服务器集群包括主机及其关联的各从机,所述响应于状态统计指令,获取缓存状态信息,包括:
响应于向所述主机发起的状态统计指令,获取所述主机的运行信息;
根据所述主机的运行信息,获取缓存状态信息。
在一种可选的实施例中,所述缓存特征库,是采用以下方式建立的:
获取缓存业务数据,其中,所述缓存业务数据为所述Redis服务器集群携带的至少一种业务场景中的缓存数据;
采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,其中,所述布隆过滤器用于关联所述Redis服务器集群的当前业务场景,所述布隆过滤器的数据结构包含多个哈希函数以及预设长度的比特数组;
根据所述标记数据获得缓存特征,并根据所述缓存特征,建立相应缓存特征库。
在一种可选的实施例中,所述采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,包括:
采用所述布隆过滤器的多个哈希函数,分别生成针对所述缓存业务数据的多个哈希列表,其中,每一哈希列表包含多个哈希值,每一哈希值关联所述缓存业务数据中的一个数据元素;
根据所述比特数组的预设长度,分别确定每一所述哈希值在所述比特数组中的对应位置;
将所述比特数组中,各所述对应位置的比特数组值置为一,并根据各比特数组值,获得标记数据。
在一种可选的实施例中,所述缓存淘汰策略集合中,至少包括以下任意一种或组合:
直接返回错误noeviction;
基于算法对所有键进行淘汰allkeys-lru;
基于算法对有过期时间的键进行淘汰volatile-lru;
随机删除键allkeys-random;
随机删除有过期时间的键volatile-random;
删除临过期的键volatile-ttl;
基于算法从有过期时间的键删除volatile-lfu;
基于算法从所有键删除allkeys-lfu。
在一种可选的实施例中,所述将当前缓存淘汰策略,切换至所述目标缓存淘汰策略之后,还包括:
响应于复制进度监控指令,获取缓存同步信息,其中,所述复制进度监控指令用于监控所述主机及所述各从机各自的复制进度,所述缓存同步信息至少包括:所述主机及所述各从机各自的复制偏移值;
根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,其中,每个客户端连接信息为相应从机在与其关联的客户端中的连接信息。
在一种可选的实施例中,所述根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,包括:
针对每一从机,分别执行以下操作:
根据一个从机的复制偏移值,及所述主机的复制偏移值,计算所述一个从机的复制差值,其中,所述复制差值表征:所述一个从机与所述主机间,相应复制进度的差异状况;
判断所述复制差值是否大于预设差值阈值;其中:
若是,则在所述一个从机关联的客户端中,移除与所述一个从机关联的连接信息;
否则,不调整所述一个从机的客户端连接信息。
第二方面,本申请实施例提供一种缓存淘汰策略的切换装置,应用于分布式服务器集群,包括:
信息获取模块,用于响应于状态信息统计指令,获取缓存状态信息,其中,所述状态统计信息指令用于统计至少一个服务器的状态信息,所述状态信息至少包括:相应服务器的处理器使用状况以及内存使用状况;
特征匹配模块,用于根据所述缓存状态信息,从缓存特征库中,获得匹配的目标信息特征;
策略匹配模块,用于根据所述目标信息特征,从缓存淘汰策略集合中,获得匹配的目标缓存淘汰策略;
策略切换模块,用于将当前缓存淘汰策略,切换至所述目标缓存淘汰策略。
在一种可选的实施例中,所述分布式服务器集群为远程字典服务Redis服务器集群,所述Redis服务器集群包括主机及其关联的各从机,所述响应于状态统计指令,获取缓存状态信息,所述信息获取模块用于:
响应于向所述主机发起的状态统计指令,获取所述主机的运行信息;
根据所述主机的运行信息,获取缓存状态信息。
在一种可选的实施例中,所述缓存特征库,是采用以下方式建立的:
获取缓存业务数据,其中,所述缓存业务数据为所述Redis服务器集群携带的至少一种业务场景中的缓存数据;
采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,其中,所述布隆过滤器用于关联所述Redis服务器集群的当前业务场景,所述布隆过滤器的数据结构包含多个哈希函数以及预设长度的比特数组;
根据所述标记数据获得缓存特征,并根据所述缓存特征,建立相应缓存特征库。
在一种可选的实施例中,所述采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,包括:
采用所述布隆过滤器的多个哈希函数,分别生成针对所述缓存业务数据的多个哈希列表,其中,每一哈希列表包含多个哈希值,每一哈希值关联所述缓存业务数据中的一个数据元素;
根据所述比特数组的预设长度,分别确定每一所述哈希值在所述比特数组中的对应位置;
将所述比特数组中,各所述对应位置的比特数组值置为一,并根据各比特数组值,获得标记数据。
在一种可选的实施例中,所述缓存淘汰策略集合中,至少包括以下任意一种或组合:
直接返回错误noeviction;
基于算法对所有键进行淘汰allkeys-lru;
基于算法对有过期时间的键进行淘汰volatile-lru;
随机删除键allkeys-random;
随机删除有过期时间的键volatile-random;
删除临过期的键volatile-ttl;
基于算法从有过期时间的键删除volatile-lfu;
基于算法从所有键删除allkeys-lfu。
在一种可选的实施例中,所述将当前缓存淘汰策略,切换至所述目标缓存淘汰策略之后,所述策略切换模块还用于:
响应于复制进度监控指令,获取缓存同步信息,其中,所述复制进度监控指令用于监控所述主机及所述各从机各自的复制进度,所述缓存同步信息至少包括:所述主机及所述各从机各自的复制偏移值;
根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,其中,每个客户端连接信息为相应从机在与其关联的客户端中的连接信息。
在一种可选的实施例中,所述根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,所述策略切换模块用于:
针对每一从机,分别执行以下操作:
根据一个从机的复制偏移值,及所述主机的复制偏移值,计算所述一个从机的复制差值,其中,所述复制差值表征:所述一个从机与所述主机间,相应复制进度的差异状况;
判断所述复制差值是否大于预设差值阈值;其中:
若是,则在所述一个从机关联的客户端中,移除与所述一个从机关联的连接信息;
否则,不调整所述一个从机的客户端连接信息。
第三方面,提出了一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述第一方面所述的缓存淘汰策略的切换方法的步骤。
第四方面,提出一种计算机可读存储介质,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行上述第一方面所述的缓存淘汰策略的切换方法的步骤。
本申请实施例的技术效果如下:
本申请实施例提供一种缓存淘汰策略的切换方法、装置、电子设备及存储介质,应用于分布式服务器集群,具体的,响应于状态信息统计指令,获取缓存状态信息,其中,状态统计信息指令用于统计至少一个服务器的状态信息,状态信息至少包括:相应服务器所在数据服务器的处理器使用状况以及内存使用状况,进一步的,根据缓存状态信息,从缓存特征库中,获得匹配的目标信息特征,并根据目标信息特征,从缓存淘汰策略集合中,获得并切换至匹配的目标缓存淘汰策略,基于上述方式,通过状态信息统计指令获取更丰富的缓存状态信息,从而基于缓存状态信息确定目标信息特征以及匹配的目标缓存淘汰策略,进而有效提升了待切换的目标缓存淘汰策略的准确性。
附图说明
图1为本申请实施例提供的一种可能的应用场景示意图;
图2为本申请实施例提供的一种缓存淘汰策略的切换方法的流程图;
图3为本申请实施例提供的一种布隆过滤器示意图;
图4为本申请实施例提供的一种缓存系统示意图;
图5为本申请实施例提供的一种缓存淘汰策略的切换装置的结构示意图;
图6为本申请实施例提供的一种电子设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
此外,本申请技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。
下面将结合附图,对本申请实施例提供的一种缓存淘汰策略的切换方法进行详细地阐述、说明。
首先,本申请实施例所提供的缓存淘汰策略的切换方法可以应用于分布式服务器集群。
可选的,可以应用于远程字典服务Redis服务器集群,所述Redis服务器集群包括主机及其关联的各从机,参阅图1所示,在本申请实施例提供的一种可能的应用场景中,远程字典服务Redis服务器集群包含主机11以及各从机12,其中,主机11和各从机12之间可进行信息交互,在一种可选的实施例中,所述主机11可以用于进行缓存淘汰策略的切换,当主机11中的数据发生变化时,各从机12获得所述主机11的同步数据。
基于上述应用场景,下面将结合参考附图,对本申请实施例所提供的缓存淘汰策略的切换方法进行进一步地阐述、说明,参阅图2所示,包括:
S201:响应于状态信息统计指令,获取缓存状态信息。
具体的,状态统计信息指令用于统计至少一个服务器的状态信息,状态信息至少包括:相应服务器的处理器使用状况以及内存使用状况。
可选的,状态统计指令可以是用于统计至少一个Redis服务器的状态信息的Redisinfo命令,所述至少一个Redis服务器可以是主机,也可以是任意从机,所述状态统计指令可以被响应一次或多次,如,固定时刻响应、周期性响应等,本申请对此不作限制。
示例性的,本申请实施例中,响应于向主机发起的Redis info命令,获取主机的状态信息,其中,状态信息至少包括主机的处理器使用状况以及内存使用状况,如,“used_cpu_sys:00”等,以便基于上述维度对主机待切换的业务场景进行准确分析,确保后续确定的缓存淘汰策略的准确性。
S202:根据缓存状态信息,从缓存特征库中,获得匹配的目标信息特征。
在一种可选的实施例中,所述缓存特征库,是采用以下方式建立的,包括:
步骤1:获取缓存业务数据。
具体的,缓存业务数据为Redis服务器集群携带的至少一种业务场景中的缓存数据。
步骤2:采用布隆过滤器,对缓存业务数据进行标记,获得标记数据。
具体的,布隆过滤器用于关联Redis服务器集群的当前业务场景,采用布隆过滤器,标记缓存业务数据中匹配当前业务场景的关键信息,以实现特征提取及缓存特征库动态建立的自动处理。
在一种可选的实施例中,所述布隆过滤器的数据结构包含多个哈希函数以及预设长度的比特数组,则在采用布隆过滤器,对缓存业务数据进行标记,获得标记数据时,具体执行以下步骤:
步骤21:采用布隆过滤器的多个哈希函数,分别生成针对缓存业务数据的多个哈希列表。
其中,每一哈希列表包含多个哈希值,每一哈希值关联缓存业务数据中的一个数据元素。
具体的,采用布隆过滤器的多个哈希函数,分别计算缓存业务数据中,每个数据元素的多个哈希值,获得相应的多个哈希列表。
步骤22:根据比特数组的预设长度,分别确定每一哈希值在比特数组中的对应位置。
步骤23:将比特数组中,各对应位置的比特数组值置为一,并根据各比特数组值,获得标记数据。
示例性的,参阅图3所示,针对一个数据元素x,假设布隆过滤器的数据结构包含4个哈希函数以及长度为10的比特数组,则根据该数据元素x各自对应4个哈希函数的4个哈希值,确定每个哈希值在布隆过滤器比特数组中的对应位置,同时,将比特数组中,各对应位置的比特数组值置为一,记录该数据元素x为标记数据。
步骤3:根据标记数据获得缓存特征,并根据缓存特征,建立相应缓存特征库。
具体的,对标记数据进行数据碰撞,合并相同和/或过于相似的数据信息,获得缓存特征,并将该缓存特征添加进动态建立的缓存特征库中,便于后续根据缓存状态信息,从缓存特征库中,获得匹配的目标信息特征。
S203:根据目标信息特征,从缓存淘汰策略集合中,获得匹配的目标缓存淘汰策略。
具体的,从缓存淘汰策略集合中,获得与目标信息特征匹配的目标缓存淘汰策略,可选的,从预设的缓存淘汰策略集合中,获得与目标信息特征匹配的目标缓存淘汰策略,上述缓存淘汰策略集合至少包括以下任意一种或组合:
直接返回错误noeviction:直接返回错误,不淘汰任何已经存在的redis键。
基于算法对所有键进行淘汰allkeys-lru:所有的键使用lru算法进行淘汰。
基于算法对有过期时间的键进行淘汰volatile-lru:有过期时间的使用lru算法进行淘汰。
随机删除键allkeys-random:随机删除redis键。
随机删除有过期时间的键volatile-random:随机删除有过期时间的redis键。
删除临过期的键volatile-ttl:删除快过期的redis键。
基于算法从有过期时间的键删除volatile-lfu:根据lfu算法从有过期时间的键删除。
基于算法从所有键删除allkeys-lfu:根据lfu算法从所有键删除。
S204:将当前缓存淘汰策略,切换至目标缓存淘汰策略。
具体的,针对获取的目标缓存淘汰策略,采用config get maxmemory-policy命令将当前缓存淘汰策略向目标缓存淘汰策略进行切换,可选的,向主机发起config getmaxmemory-policy命令,以使主机切换至目标缓存淘汰策略,各从机基于同步数据进行相应处理。
在一种可选的实施例中,为获取主机与各从机间的同步状况,将当前缓存淘汰策略,切换至所述目标缓存淘汰策略之后,还包括:
步骤1:响应于复制进度监控指令,获取缓存同步信息。
可选的,复制进度监控指令可以是用于监控主机及所述各从机各自的复制进度的Redis info replication命令,缓存同步信息至少包括主机及各从机各自的复制偏移值,其中,主机的复制偏移值可以通过查看主库接收写命令的进度信息master_repl_offset获得,从机的复制偏移值可以通过查看从库复制写命令的进度信息slave_repl_offset获得,所述复制进度监控指令可以被响应一次或多次,如,固定时刻响应、周期性响应等。
步骤2:根据缓存同步信息,调整各从机各自的客户端连接信息。
具体的,每个客户端连接信息为相应从机在与其关联的客户端中的连接信息,根据缓存同步信息,对各从机各自的客户端连接信息进行动态调整,以进一步确保缓存系统的整体稳定性。
在一种可选的实施例中,所述根据缓存同步信息,调整各从机各自的客户端连接信息,包括针对每一从机,分别执行以下操作:
步骤21:根据一个从机的复制偏移值,及主机的复制偏移值,计算一个从机的复制差值。
其中,复制差值表征一个从机与主机间,相应复制进度的差异状况。
步骤22:判断复制差值是否大于预设差值阈值,若是,执行步骤23,否则,执行步骤24。
步骤23:一个从机关联的客户端中,移除与一个从机关联的连接信息。
步骤24:不调整一个从机的客户端连接信息。
基于上述方式,本申请通过复制进度监控指令获得缓存同步信息,从而根据缓存同步信息,实时确定主机与各从机间的复制进度的差异状况,以在差异较大时,及时在客户端中移除相应从机的连接信息,从而减少因复制进度不同步而带来的数据不一致,进而提升了缓存系统的稳定性。
进一步的,参阅图4所示,为本申请实施例提供的一种缓存系统,所述缓存系统包含特征库建立模块、缓存淘汰策略切换模块以及复制进度监控模块。
其中,特征库建立模块通过布隆过滤器,从缓存业务数据中获取标记数据,并通过数据碰撞获取缓存特征。
缓存淘汰策略切换模块通过状态信息统计指令获取缓存状态信息,并通过缓存状态信息匹配目标信息特征,及通过目标信息特征匹配并切换至目标缓存淘汰策略。
复制进度监控模块通过复制进度监控指令获取缓存同步信息,并通过缓存同步信息调整各从机各自的客户端连接信息。
可见,本申请实施例提供的上述缓存系统,一方面,基于状态信息统计指令获取更丰富的缓存状态信息,另一方面,基于复制进度监控指令对主机与各从机间的复制进度进行实时监控,从而进一步保证了目标缓存淘汰策略的准确性以及系统稳定性。
进一步地,基于相同的技术构思,本申请实施例还提供了一种缓存淘汰策略的切换装置,该缓存淘汰策略的切换装置用以实现本申请实施例的上述方法流程。参阅图5所示,该装置包括:信息获取模块501、特征匹配模块502、策略匹配模块503及策略切换模块504;其中:
信息获取模块501,用于响应于状态信息统计指令,获取缓存状态信息,其中,所述状态统计信息指令用于统计至少一个服务器的状态信息,所述状态信息至少包括:相应服务器的处理器使用状况以及内存使用状况;
特征匹配模块502,用于根据所述缓存状态信息,从缓存特征库中,获得匹配的目标信息特征;
策略匹配模块503,用于根据所述目标信息特征,从缓存淘汰策略集合中,获得匹配的目标缓存淘汰策略;
策略切换模块504,用于将当前缓存淘汰策略,切换至所述目标缓存淘汰策略。
在一种可选的实施例中,所述分布式服务器集群为远程字典服务Redis服务器集群,所述Redis服务器集群包括主机及其关联的各从机,所述响应于状态统计指令,获取缓存状态信息,所述信息获取模块501用于:
响应于向所述主机发起的状态统计指令,获取所述主机的运行信息;
根据所述主机的运行信息,获取缓存状态信息。
在一种可选的实施例中,所述缓存特征库,是采用以下方式建立的:
获取缓存业务数据,其中,所述缓存业务数据为所述Redis服务器集群携带的至少一种业务场景中的缓存数据;
采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,其中,所述布隆过滤器用于关联所述Redis服务器集群的当前业务场景,所述布隆过滤器的数据结构包含多个哈希函数以及预设长度的比特数组;
根据所述标记数据获得缓存特征,并根据所述缓存特征,建立相应缓存特征库。
在一种可选的实施例中,所述采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,包括:
采用所述布隆过滤器的多个哈希函数,分别生成针对所述缓存业务数据的多个哈希列表,其中,每一哈希列表包含多个哈希值,每一哈希值关联所述缓存业务数据中的一个数据元素;
根据所述比特数组的预设长度,分别确定每一所述哈希值在所述比特数组中的对应位置;
将所述比特数组中,各所述对应位置的比特数组值置为一,并根据各比特数组值,获得标记数据。
在一种可选的实施例中,所述缓存淘汰策略集合中,至少包括以下任意一种或组合:
直接返回错误noeviction;
基于算法对所有键进行淘汰allkeys-lru;
基于算法对有过期时间的键进行淘汰volatile-lru;
随机删除键allkeys-random;
随机删除有过期时间的键volatile-random;
删除临过期的键volatile-ttl;
基于算法从有过期时间的键删除volatile-lfu;
基于算法从所有键删除allkeys-lfu。
在一种可选的实施例中,所述将当前缓存淘汰策略,切换至所述目标缓存淘汰策略之后,所述策略切换模块504还用于:
响应于复制进度监控指令,获取缓存同步信息,其中,所述复制进度监控指令用于监控所述主机及所述各从机各自的复制进度,所述缓存同步信息至少包括:所述主机及所述各从机各自的复制偏移值;
根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,其中,每个客户端连接信息为相应从机在与其关联的客户端中的连接信息。
在一种可选的实施例中,所述根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,所述策略切换模块504用于:
针对每一从机,分别执行以下操作:
根据一个从机的复制偏移值,及所述主机的复制偏移值,计算所述一个从机的复制差值,其中,所述复制差值表征:所述一个从机与所述主机间,相应复制进度的差异状况;
判断所述复制差值是否大于预设差值阈值;其中:
若是,则在所述一个从机关联的客户端中,移除与所述一个从机关联的连接信息;
否则,不调整所述一个从机的客户端连接信息。
与上述申请实施例基于同一发明构思,本申请实施例中还提供了一种电子设备,该电子设备可以用于缓存淘汰策略的切换。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。在该实施例中,电子设备的结构可以如图6所示,包括存储器601,通讯接口603以及一个或多个处理器602。
存储器601,用于存储处理器602执行的计算机程序。存储器601可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器601可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器601也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器601是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器601可以是上述存储器的组合。
处理器602,可以包括一个或多个中央处理单元(Central Processing Unit,CPU)或者为数字处理单元等。处理器602,用于调用存储器601中存储的计算机程序时实现上述缓存淘汰策略的切换方法。
通讯接口603用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器601、通讯接口603和处理器602之间的具体连接介质。本申请实施例在图6中以存储器601和处理器602之间通过总线604连接,总线604在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种缓存淘汰策略的切换方法。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本申请实施例提供一种缓存淘汰策略的切换方法、装置、电子设备及存储介质,应用于分布式服务器集群,具体的,响应于状态信息统计指令,获取缓存状态信息,其中,状态统计信息指令用于统计至少一个服务器的状态信息,状态信息至少包括:相应服务器所在数据服务器的处理器使用状况以及内存使用状况,进一步的,根据缓存状态信息,从缓存特征库中,获得匹配的目标信息特征,并根据目标信息特征,从缓存淘汰策略集合中,获得并切换至匹配的目标缓存淘汰策略,基于上述方式,通过状态信息统计指令获取更丰富的缓存状态信息,从而基于缓存状态信息确定目标信息特征以及匹配的目标缓存淘汰策略,进而有效提升了待切换的目标缓存淘汰策略的准确性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个服务器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
可使用一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。
在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如,利用因特网服务提供商来通过因特网连接)。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种缓存淘汰策略的切换方法,其特征在于,应用于分布式服务器集群,包括:
响应于状态信息统计指令,获取缓存状态信息,其中,所述状态统计信息指令用于统计至少一个服务器的状态信息,所述状态信息至少包括:相应服务器的处理器使用状况以及内存使用状况;
根据所述缓存状态信息,从缓存特征库中,获得匹配的目标信息特征;
根据所述目标信息特征,从缓存淘汰策略集合中,获得匹配的目标缓存淘汰策略;
将当前缓存淘汰策略,切换至所述目标缓存淘汰策略。
2.如权利要求1所述的方法,其特征在于,所述分布式服务器集群为远程字典服务Redis服务器集群,所述Redis服务器集群包括主机及其关联的各从机,所述响应于状态统计指令,获取缓存状态信息,包括:
响应于向所述主机发起的状态统计指令,获取所述主机的运行信息;
根据所述主机的运行信息,获取缓存状态信息。
3.如权利要求2所述的方法,其特征在于,所述缓存特征库,是采用以下方式建立的:
获取缓存业务数据,其中,所述缓存业务数据为所述Redis服务器集群携带的至少一种业务场景中的缓存数据;
采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,其中,所述布隆过滤器用于关联所述Redis服务器集群的当前业务场景,所述布隆过滤器的数据结构包含多个哈希函数以及预设长度的比特数组;
根据所述标记数据获得缓存特征,并根据所述缓存特征,建立相应缓存特征库。
4.如权利要求3所述的方法,其特征在于,所述采用布隆过滤器,对所述缓存业务数据进行标记,获得标记数据,包括:
采用所述布隆过滤器的多个哈希函数,分别生成针对所述缓存业务数据的多个哈希列表,其中,每一哈希列表包含多个哈希值,每一哈希值关联所述缓存业务数据中的一个数据元素;
根据所述比特数组的预设长度,分别确定每一所述哈希值在所述比特数组中的对应位置;
将所述比特数组中,各所述对应位置的比特数组值置为一,并根据各比特数组值,获得标记数据。
5.如权利要求3或4所述的方法,其特征在于,所述缓存淘汰策略集合中,至少包括以下任意一种或组合:
直接返回错误noeviction;
基于算法对所有键进行淘汰allkeys-lru;
基于算法对有过期时间的键进行淘汰volatile-lru;
随机删除键allkeys-random;
随机删除有过期时间的键volatile-random;
删除临过期的键volatile-ttl;
基于算法从有过期时间的键删除volatile-lfu;
基于算法从所有键删除allkeys-lfu。
6.如权利要求3或4所述的方法,其特征在于,所述将当前缓存淘汰策略,切换至所述目标缓存淘汰策略之后,还包括:
响应于复制进度监控指令,获取缓存同步信息,其中,所述复制进度监控指令用于监控所述主机及所述各从机各自的复制进度,所述缓存同步信息至少包括:所述主机及所述各从机各自的复制偏移值;
根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,其中,每个客户端连接信息为相应从机在与其关联的客户端中的连接信息。
7.如权利要求6所述的方法,其特征在于,所述根据所述缓存同步信息,调整所述各从机各自的客户端连接信息,包括:
针对每一从机,分别执行以下操作:
根据一个从机的复制偏移值,及所述主机的复制偏移值,计算所述一个从机的复制差值,其中,所述复制差值表征:所述一个从机与所述主机间,相应复制进度的差异状况;
判断所述复制差值是否大于预设差值阈值;其中:
若是,则在所述一个从机关联的客户端中,移除与所述一个从机关联的连接信息;
否则,不调整所述一个从机的客户端连接信息。
8.一种缓存淘汰策略的切换装置,其特征在于,应用于分布式服务器集群,包括:
信息获取模块,用于响应于状态信息统计指令,获取缓存状态信息,其中,所述状态统计信息指令用于统计至少一个服务器的状态信息,所述状态信息至少包括:相应服务器的处理器使用状况以及内存使用状况;
特征匹配模块,用于根据所述缓存状态信息,从缓存特征库中,获得匹配的目标信息特征;
策略匹配模块,用于根据所述目标信息特征,从缓存淘汰策略集合中,获得匹配的目标缓存淘汰策略;
策略切换模块,用于将当前缓存淘汰策略,切换至所述目标缓存淘汰策略。
9.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211663989.5A CN115858423A (zh) | 2022-12-23 | 2022-12-23 | 缓存淘汰策略的切换方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211663989.5A CN115858423A (zh) | 2022-12-23 | 2022-12-23 | 缓存淘汰策略的切换方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858423A true CN115858423A (zh) | 2023-03-28 |
Family
ID=85654244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211663989.5A Pending CN115858423A (zh) | 2022-12-23 | 2022-12-23 | 缓存淘汰策略的切换方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858423A (zh) |
-
2022
- 2022-12-23 CN CN202211663989.5A patent/CN115858423A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11604759B2 (en) | Retention management for data streams | |
CN108810041B (zh) | 一种分布式缓存系统的数据写入及扩容方法、装置 | |
KR102392944B1 (ko) | 데이터 백업 방법, 저장 매체 및 컴퓨팅 기기 | |
US11809726B2 (en) | Distributed storage method and device | |
US10565063B2 (en) | Virtual machine snapshot backup based on multilayer de-duplication | |
CN111159436B (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
US11232073B2 (en) | Method and apparatus for file compaction in key-value store system | |
CN109471843B (zh) | 一种元数据缓存方法、系统及相关装置 | |
CN110737388A (zh) | 数据预读方法、客户端、服务器以及文件系统 | |
CN110457305B (zh) | 数据去重方法、装置、设备及介质 | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
WO2017095820A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
CN107040576A (zh) | 信息推送方法及装置、通讯系统 | |
CN110908965A (zh) | 一种对象存储管理方法、装置、设备及存储介质 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
US20130198460A1 (en) | Information processing device, memory management method, and computer-readable recording medium | |
CN113742131B (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN111435323B (zh) | 信息的传输方法、装置、终端、服务器及存储介质 | |
CN111694806A (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN115858423A (zh) | 缓存淘汰策略的切换方法、装置、电子设备及存储介质 | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN115905115A (zh) | 文件存储方法、读取方法及装置、电子设备与存储介质 | |
CN110825652B (zh) | 淘汰磁盘块上的缓存数据的方法、装置及设备 | |
CN111104381A (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 |