缓存处理方法以及装置与流程

专利2022-06-30  72


本说明书实施例涉及数据处理技术领域,特别涉及一种缓存处理方法。本说明书一个或者多个实施例同时涉及一种缓存处理装置,一种计算设备,以及一种计算机可读存储介质。



背景技术:

随着互联网业务的发展,业务系统中针对数据的变更越来越频繁,而这些数据的变更可能引发业务系统的故障,为了防止对业务系统中数据的变更而引发重大故障或用户的访问请求流量熔断等问题,会采用灰度变更的方式,让变更慢慢对线上生效,以便出现因变更引发的问题时,可以很快控制影响面,并实现变更数据的回滚,目前有通过机器维度实现灰度功能,变更后首先触发单个服务器刷新,过一段时间再手工触发全量服务器刷新,然而无法保证用户两次请求的数据是在同一台服务器上,即无法保证用户两次请求的数据的一致性,从而对业务造成影响,因此需要提供更可靠的方案。



技术实现要素:

有鉴于此,本说明书实施例提供了一种缓存处理方法。本说明书一个或者多个实施例同时涉及一种缓存处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种缓存处理方法,包括:

基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

可选的,所述基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值,包括:

基于所述灰度配置中包含的灰度时间确定针对所述缓存的缓存灰度时间;

获取所述缓存对应的数据项的变更时间以及业务系统时间,所述变更时间是在所述基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键步骤执行之前将初始数据项变更为所述数据项的时间;

根据所述业务系统时间与所述变更时间的差值,计算针对所述数据项的变更时长;

判断所述变更时长是否大于等于所述缓存灰度时间;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值。

可选的,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例;

根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断所述用户标识是否在所述用户标识区间内;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长以及所述灰度配置,确定所述变更时长对应的白名单用户的白名单用户标识;

根据所述用户标识以及所述白名单用户标识,判断所述用户是否属于所述白名单用户;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时间,确定所述灰度配置中的灰度特征以及所述灰度特征的灰度特征值;

根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断所述用户特征值是否与所述灰度特征值匹配;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例、灰度特征以及所述灰度特征的灰度特征值;

根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断所述用户标识是否存在于所述用户标识区间内;

若存在,根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断所述用户特征值是否与所述灰度特征值匹配;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,所述针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回步骤执行之后,还包括:

在接收到针对所述数据项的变更指令的情况下,根据所述变更指令携带的变更数据项对所述数据项进行更新;

在所述缓存值队列中将存储于队首的缓存值进行删除;

将所述变更数据项存储至所述缓存值队列的队尾。

可选的,所述针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回步骤执行之后,还包括:

在所述缓存值队列中将存储于队首的缓存值进行删除。

可选的,在所述缓存灰度时间内,执行如下操作:

获取所述缓存灰度时间内产生的异常数据;

对所述异常数据进行异常分析,获得所述异常分析的分析结果;

根据所述分析结果确定产生所述异常数据的异常原因。

可选的,所述根据所述分析结果确定产生所述异常数据的异常原因步骤执行之后,还包括:

在所述异常原因为所述数据项的情况下,在所述缓存值队列中将存储于队尾的缓存值进行删除;

获取针对所述数据项在变更前的所述初始数据项,根据所述初始数据项更新所述数据项。

根据本说明书实施例的第二方面,提供了一种缓存处理装置,包括:

确定缓存键模块,被配置为基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

获取长度模块,被配置为根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

获取配置模块,被配置为在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

确定缓存值模块,被配置为基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

返回模块,被配置为针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

根据本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述缓存处理方法的步骤。

本说明书一个实施例,通过基于用户的访问请求中携带的访问信息确定的缓存键,获取缓存键对应的的缓存的缓存值列队的列队长度,在列队长度大于长度阈值的情况下,表明缓存对应的数据项是变更后的数据项,则根据用户请求中携带的用户标识以及所述缓存对应的灰度配置确定访问请求对应的目标缓存值是缓存值队列中存储变更前的初始数据项的缓存值还是存储变更后的数据项的缓存值,并将目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回,实现了将数据项从用户维度按照灰度比例缓慢生效,有利于在少量用户生效后可以发现问题,快速回滚,防止因数据项的错误引发业务系统出现故障,并避免引发用户的访问请求流量熔断、数据错误等业务问题。

附图说明

图1是本说明书一个实施例提供的一种缓存处理方法的流程图;

图2是本说明书一个实施例提供的一种应用于业务系统的缓存处理方法的处理流程图;

图3是本说明书一个实施例提供的一种缓存处理装置的结构示意图;

图4是本说明书一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在本说明书中,提供了一种缓存处理方法,本说明书一个或者多个实施例同时涉及一种缓存处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

本说明书提供的一种缓存处理方法实施例如下:

图1示出了根据本说明书一个实施例提供的一种缓存处理方法的流程图,包括步骤s102至步骤s110。

步骤s102,基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键。

实际应用中,为了防止对业务系统中变更的数据项而引发重大故障或用户的访问请求量熔断等问题,会采用灰度的方式,让变更慢慢对线上生效,以便出现因变更引发的问题时,可以很快控制影响面,并实现数据项的回滚,但无法保证用户两次请求的数据的一致性,从而对业务造成影响。针对于此,本说明书实施例,通过将变更前的初始数据项以及变更后的数据项共同存储于一个缓存的缓存值队列中,此缓存具有一个缓存键,并至少两个缓存值,并针对这些缓存值在用户维度进行灰度控制,让一部分用户继续访问变更前的初始数据项对应的缓存值,让另一部分用户开始访问变更后的数据项对应的缓存值,若另一部分用户在访问变更后的数据项对应的缓存值过程中没有出现异常的情况,则控制更多用户对变更后的数据项对应的缓存值进行访问,直至全部用户都可以访问变更后的数据对应的缓存值。

其中,业务系统可以是信贷业务系统、订单业务系统、通讯业务系统等,在此不做限制;缓存键(缓存key),是对缓存的唯一性标识,每个缓存都具有唯一的缓存键,通过缓存键,可唯一地确定一个缓存,而一个缓存中的缓存键可以对应一个或多个缓存值。

具体实施时,可根据用户的访问请求中携带的访问信息确定对应的缓存键,其中,访问信息包括:产品标识、参数标识、下拉框标识等,实际应用中,通常将业务系统中读比较频繁,写比较少的数据存储在缓存里,以提升数据的读取速度,具体的,这些存储在缓存中的数据可以是产品信息、参数配置信息、字典信息等配置信息,当接收到用户的访问请求后,会根据用户的访问请求中携带的访问信息,决策出访问请求对应的缓存键,并进一步根据缓存键确定对应的缓存值。

例如,用户a的访问请求中携带产品标识p0023,根据此产品标识p0023进行决策,即可确定此产品标识对应的缓存键为:p0023r56。

步骤s104,根据所述缓存键获取对应的缓存的缓存值队列的队列长度。

具体的,在步骤s102中基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键的基础上,根据缓存键确定其对应的缓存,并获取此缓存的缓存值队列的队列长度。

其中,所述缓存值队列,可以是有顺序的缓存值的集合,实际应用中,此集合中可以包含一个或多个缓存值,相应的,所述列队长度,是指此集合中缓存值的数量。

沿用上例,根据用户a的访问请求中携带的产品标识p0023确定的缓存键p0023r56在缓存数据中进行查询,确定此缓存键p0023r56对应的缓存的缓存值队列,此缓存值队列中包含的缓存值有2个,则获取到的此缓存值队列的队列长度为2。

步骤s106,在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置。

具体的,在上述步骤s104中获取缓存的缓存值队列的队列长度的基础上,根据队列长度,确定此缓存对应的数据项的是否为变更后的数据项,即在列队长度大于长度阈值的情况下,表明此缓存对应的数据项无变更,无需对数据项基于缓存进行灰度控制,在列队长度小于等于长度阈值的情况下,表明此缓存对应的数据项为变更后的数据项,需要针对此变更后的数据项基于缓存进行灰度控制,则获取此缓存对应的灰度配置。

其中,所述长度阈值,是预先设置的长度数值,实际应用中,若缓存对应的数据项没有被变更,则缓存的缓存值队列中只包含此数据项,且此缓存值队列的队列长度为1,若缓存对应的数据项为变更后的数据项,则缓存的缓存值队列中除包含此数据项之外,还包含此数据项变更前的初始数据项,则此缓存值队列的队列长度为2;所述灰度配置,是指针对缓存进行灰度控制的控制方案,通常一种类型的缓存对应一种灰度配置,具体的,灰度配置可以是按照不同的灰度时间控制不同比例的用户访问变更后的数据项,而其他用户访问变更前的初始数据项,还可以是在灰度时间设置用户白名单,即只有在灰度时间内的在用户白名单内的用户可以访问变更后的数据项,而其他用户访问变更前的初始数据项,此外还有其他的灰度配置的方式,在此不做限制。

沿用上例,根据缓存键p0023r56获取到的此缓存值队列的队列长度为2,长度阈值1,则缓存值队列的队列长度大于长度阈值,表明在针对用户的访问请求对应的缓存对应的数据项为变更后的数据项d1,需获取此缓存键p0023r56对应的缓存的灰度配置。

步骤s108,基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值。

具体的,在上述步骤s106中获取缓存对应的灰度配置的基础上,基于灰度配置在用户维度实行的灰度控制,判断所述用户是否应该访问变更前的初始数据项还是变更后的数据项,进而确定此缓存的缓存键对应的目标缓存值。

具体实施时,针对变更后的数据项基于缓存进行灰度控制,通常会设置缓存的缓存灰度时间,用户访问时,若用户的访问请求对应的缓存对应的数据项的变更时长大于等于此缓存灰度时间,表明针对变更后的数据项基于缓存的灰度控制已经实现完成,也在一定程度上表明更新后的数据项在缓存灰度时间内在业务系统中并未引发故障或出现异常,可将更新后的数据项应用至所有的用户,则将缓存中存储变更后的数据项的缓存值作为目标缓存值,本说明书实施例提供的一种可选实施方式中,在数据项的变更时长超过此缓存灰度时间情况下,所述基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值,具体采用如下方式实现:

基于所述灰度配置中包含的灰度时间确定针对所述缓存的缓存灰度时间;

获取所述缓存对应的数据项的变更时间以及业务系统时间,所述变更时间是在所述基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键步骤执行之前将初始数据项变更为所述数据项的时间;

根据所述业务系统时间与所述变更时间的差值,计算针对所述数据项的变更时长;

判断所述变更时长是否大于等于所述缓存灰度时间;

若是,表明针对变更后的数据项基于缓存的灰度控制已经实现完成,可将更新后的数据项应用至所有的用户,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,表明针对变更后的数据项基于缓存的灰度控制还未实现完成,则基于灰度配置从用户维度基于缓存进行灰度控制。

具体的,所述缓存灰度时间,可以是通过灰度配置中包含的各个灰度时间计算而得,也可以是从灰度配置中直接获得的,其中,各个灰度时间可以相同,也可以不同,可以根据实际业务需要进行设置,在此不做限制,比如,灰度配置为[5,1%],[5,10%],[5,50%],[5,100%],其中,方括号内的第一个值表示更新后的分钟数,第二个值表示灰度用户的灰度比例,则此灰度配置表示初始数据项更新为数据项后的第一个5分钟内即0-5分钟内业务系统中只有1%的用户为灰度用户可以访问数据项,其余99%的用户继续访问初始数据项,第二个5分钟内即5-10分钟内业务系统中有10%的用户为灰度用户可以访问数据项,其余90%的用户继续访问初始数据项,第三个5分钟内即10-15分钟内业务系统中有50%的用户为灰度用户可以访问数据项,其余50%的用户继续访问初始数据项,第四个5分钟内即15-20分钟内,业务系统中100%的用户都为灰度用户都可以访问数据项,而缓存灰度时间为5 5 5 5=20分钟,可通过计算确定;

此外,若灰度配置为[5,1%],[10,10%],[15,50%],[20,100%],其中,方括号内的第一个值表示更新后的分钟数,第二个值表示灰度用户的灰度比例,则此灰度配置表示初始数据项更新为数据项后的0-5分钟内业务系统中只有1%的用户为灰度用户可以访问数据项,其余99%的用户继续访问初始数据项,在5-10分钟内业务系统中有10%的用户为灰度用户可以访问数据项,其余90%的用户继续访问初始数据项,在10-15分钟内业务系统中有50%的用户为灰度用户可以访问数据项,其余50%的用户继续访问初始数据项,在即15-20分钟内,业务系统中100%用户都为灰度用户都可以访问数据项,而缓存灰度时间为20分钟,可直接通过灰度配置确定。

其中,灰度用户是在灰度控制中可以访问变更后的数据项的用户,相应的,灰度比例是指灰度用户在业务系统中全部用户中所占的比例。

所述业务系统时间是指业务系统的当前时间,则通过计算业务系统时间与数据项的变更时间的差值,可获得数据项的变更时长。

实际应用中,在缓存对应的数据项为变更后的数据项时,将数据项变更前的初始数据项存储于缓存值队列的队首,将数据项存储于缓存值队列的队尾,因此在灰度控制实现完成之后,可将更新后的数据项应用至所有的用户,即将缓存值队列中存储于队尾的缓存值作为用户访问请求对应的目标缓存值。

沿用上例,获取缓存键p0023r56对应的缓存的灰度配置为[5,1%],[5,10%],[5,50%],[5,100%],其中包含的灰度时间分别为5分钟、5分钟、5分钟、5分钟,表示缓存的缓存灰度时间为5 5 5 5=20分钟,获取此缓存对应的数据项d1的变更时间为2019/10/513:00,业务系统时间为2019/10/513:25,则此数据项的变更时长为业务系统时间与变更时间的差值25分钟,超过此缓存的缓存灰度时间20分钟,表明数据项d1基于缓存的灰度控制已经实现完成,可将数据项d1应用至所有的用户,将缓存值队列中存储于队尾的数据项d1作为目标缓存值。

在针对变更后的数据项基于缓存进行灰度控制的基础上,若用户访问时,用户的访问请求对应的缓存对应的数据项的变更时长小于缓存灰度时间,表明针对变更后的数据项基于缓存的灰度控制未实现完成,则基于灰度配置中不同变更时长对应的灰度用户的灰度比例从用户维度对缓存进行灰度控制,实现了将数据项从用户维度按照灰度比例缓慢生效,有利于在少量用户生效后可以发现问题,快速回滚,防止因数据项的错误引发业务系统出现故障,或引发用户的访问请求流量熔断、数据错误等业务问题,本说明书实施例提供的第一种可选实施方式中,基于灰度配置中不同变更时长对应的灰度用户的灰度比例从用户维度对缓存进行灰度控制,具体采用如下方式实现:

基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例;

根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断所述用户标识是否在所述用户标识区间内;

若是,表明所述用户是灰度用户,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,表明所述用户不是灰度用户,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

实际应用中,可以通过在用户标识中取任意两位数字位进行结合,对应灰度用户的灰度比例,进而确定灰度用户的用户标识区间,比如,取用户标识中的倒数两位,在灰度配置[5,1%],[5,10%],[5,50%],[5,100%]中,其中,灰度比例1%表示用户标识的倒数两位为00的用户为1%的灰度用户,灰度比例10%表示用户标识的倒数两位为00-09的用户为10%的灰度用户,灰度比例50%表示用户标识的倒数两位为00-49的用户为50%的灰度用户,灰度比例100%表示用户标识的倒数两位为00-99的用户为100%的灰度用户。

如上所述,获取缓存键p0023r56对应的缓存的灰度配置为[5,1%],[5,10%],[5,50%],[5,100%],并缓存的缓存灰度时间为5 5 5 5=20分钟的基础上,假设,缓存对应的数据项d1的变更时间为2019/10/513:00,业务系统时间为2019/10/513:13,则此数据项的变更时长为业务系统时间与变更时间的差值13分钟,小于此缓存的缓存灰度时间20分钟,表明数据项d1基于缓存的灰度控制还未实现完成,则根据变更时长13分钟,获取缓存键p0023r56对应的缓存的灰度配置为[5,1%],[5,10%],[5,50%],[5,100%],则可确定在灰度配置中灰度用户的灰度比例为50%,此灰度比例对应的灰度用户的用户标识区间为p0000-p9949,用户a的用户标识为p2108,在此用户标识区间,表明用户a是灰度用户,可以访问数据项d1,则将缓存值队列中存储于队尾的数据项d1作为目标缓存值。

除上述第一种可选实施方式之外,在用户的访问请求对应的缓存对应的数据项的变更时长小于缓存灰度时间的情况下,还可以基于灰度配置中用户白名单用户的白名单用户标识从用户维度对缓存进行灰度控制,实现了将数据项从用户维度按照白名单用户缓慢生效,有利于在少量用户生效后可以发现问题,快速回滚,防止因数据项的错误引发业务系统出现故障,或引发用户的访问请求流量熔断、数据错误等业务问题,本说明书实施例提供的第二种可选实施方式中,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长以及所述灰度配置,确定所述变更时长对应的白名单用户的白名单用户标识;

根据所述用户标识以及所述白名单用户标识,判断所述用户是否属于所述白名单用户;

若是,表明所述用户是白名单用户,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,表明所述用户不是白名单用户,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

具体的,所述白名单用户,与灰度用户类似,是指在灰度控制中可以访问变更后的数据项的用户,实际应用中,白名单用户的白名单用户标识在灰度配置中可以是连续的用户标识区间,也可以是通过某种筛选方式筛选出的零散的用户标识,在此不做限制。

如上所述,缓存对应的数据项d1的变更时间为2019/10/513:00,业务系统时间为2019/10/513:13,变更时长为13分钟,小于缓存的缓存灰度时间20分钟的基础上,假设,获取缓存键p0023r56对应的缓存的灰度配置为[5,p2100-p2200],[5,p2100-p2200&p5000-p6000],[5,p2100-p2200&p5000-p6000&p7550-p8000],[5,p0000-p9999],则可确定白名单用户的白名单用户标识为p2100-p2200&p5000-p6000&p7550-p8000,用户a的用户标识为p2108,在此用户标识区间,表明用户a是白名单用户,可以访问数据项d1,则将缓存值队列中存储于队尾的数据项d1作为目标缓存值。

除上述两种可选实施方式之外,在用户的访问请求对应的缓存对应的数据项的变更时长小于缓存灰度时间的情况下,还可以基于灰度配置中灰度特征的灰度特征值从用户维度对缓存进行灰度控制,实现了将数据项从用户维度按照灰度特征的灰度特征值缓慢生效,有利于针对具有共同灰度特征值的用户生效后可以发现问题,快速回滚,防止因数据项的错误引发业务系统出现故障,或引发用户的访问请求流量熔断、数据错误等业务问题,本说明书实施例提供的第三种可选实施方式中,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时间,确定所述灰度配置中的灰度特征以及所述灰度特征的灰度特征值;

根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断所述用户特征值是否与所述灰度特征值匹配;

若是,表明所述用户是灰度用户,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,表明所述用户不是灰度用户,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

具体的,所述灰度特征,是指用户的用户特征中的一个或多个作为从用户维度进行灰度控制的特征,相应的,灰度特征值是灰度特征的众多特征值中选择作为从用户维度进行灰度控制的特征值。

实际应用中,用户特征值与所述灰度特征值匹配,可以是用户特征值与灰度特征值中的至少一个灰度特征值匹配,

如上所述,缓存对应的数据项d1的变更时间为2019/10/513:00,业务系统时间为2019/10/513:13,变更时长为13分钟,小于缓存的缓存灰度时间20分钟的基础上,假设,获取缓存键p0023r56对应的缓存的灰度配置为[5,性别=男],[5,性别=男&所在地=北京],[5,性别=男&所在地=北京&爱好=读书],[5,不限],则可确定灰度配置中的灰度特征为性别、所在地以及爱好,其中,性别的灰度特征值为男,所在地的灰度特征值为北京,爱好的灰度特征值为读书,根据用户a的用户标识为p2108,获取用户a的性别为女,所在地为江苏,爱好为游戏,将用户a的这些用户特征值与上述灰度特征值一一比对,并没有任一用户特征值与灰度特征值匹配,表明用户a不是灰度用户,不可以访问数据项d1,则将缓存值队列中存储于队首的初始数据项d0作为目标缓存值。

除上述三种可选实施方式之外,在用户的访问请求对应的缓存对应的数据项的变更时长小于缓存灰度时间的情况下,还可以基于灰度配置中灰度比例以及灰度特征的灰度特征值从用户维度对缓存进行灰度控制,实现了将数据项从用户维度按照灰度比例以及灰度特征的灰度特征值缓慢生效,增加了在基于缓存的灰度控制中确定灰度用户的用户维度,有利于在少量用户生效后可以发现问题,快速回滚,防止因数据项的错误引发业务系统出现故障,或引发用户的访问请求流量熔断、数据错误等业务问题,本说明书实施例提供的第四种可选实施方式中,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例、灰度特征以及所述灰度特征的灰度特征值;

根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断所述用户标识是否存在于所述用户标识区间内;

若不存在,表明所述用户不是灰度用户,执行下述将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值步骤;

若存在,表明还需继续根据用户特征值判断所述用户是否为灰度用户,则根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断所述用户特征值是否与所述灰度特征值匹配;

若是,表明所述用户是灰度用户,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,表明所述用户不是灰度用户,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

如上所述,缓存对应的数据项d1的变更时间为2019/10/513:00,业务系统时间为2019/10/513:13,变更时长为13分钟,小于缓存的缓存灰度时间20分钟的基础上,假设,获取缓存键p0023r56对应的缓存的灰度配置为[5,1%,性别=男],[5,10%,性别=男&所在地=北京],[5,50%,性别=男&所在地=北京&爱好=读书],[5,不限],则可确定灰度配置中的灰度用户的灰度比例为50%,并灰度特征为性别、所在地以及爱好,其中,性别的灰度特征值为男,所在地的灰度特征值为北京,爱好的灰度特征值为读书,此灰度比例50%对应的灰度用户的用户标识区间为p0000-p9949,用户a的用户标识为p2108,则判断用户a的用户标识p2108是否存在于用户标识区间p0000-p9949的判断结果为存在,则根据用户a的用户标识为p2108,获取用户a的性别为女,所在地为江苏,爱好为游戏,将用户a的这些用户特征值与上述灰度特征值一一比对,并没有任一用户特征值与灰度特征值匹配,表明用户a不是灰度用户,不可以访问数据项d1,则将缓存值队列中存储于队首的数据项变更前的初始数据项d0作为目标缓存值。

实际应用中,在针对变更后的数据项基于缓存进行灰度控制的基础上,需监控是否存在因变更后的数据项引发的业务系统异常,以便可以及早发现变更后的数据项是否存在缺陷,有利于后续针对已存在缺陷进行克服,本说明书实施例提供的一种可选实施方式中,在缓存灰度时间内,获取业务系统的异常,并判断业务系统异常的原因,具体采用如下方式实现:

获取所述缓存灰度时间内产生的异常数据;

对所述异常数据进行异常分析,获得所述异常分析的分析结果;

根据所述分析结果确定产生所述异常数据的异常原因。

实际应用中,异常数据包括:用户的访问请求流量熔断异常数据、cpu使用异常数据、用户反馈信息、用户投诉信息等,在此不做限制,并根据获取的异常数据做进一步的异常分析,且基于分析结果确定产生异常数据的异常原因,并根据确定的异常原因确定是否需要对更新后的数据项进行回滚。

在上述基于缓存灰度时间内产生的异常数据进行异常分析确定异常原因的基础上,在异常原因为数据项的情况下,将数据项回滚为初始数据项,以此解决由数据项产生的异常数据,是业务系统恢复正常运行,本说明书实施例提供的一种可选实施方式中,所述根据所述分析结果确定产生所述异常数据的异常原因步骤执行之后,还包括:

在所述异常原因为所述数据项的情况下,在所述缓存值队列中将存储于队尾的缓存值进行删除;

获取针对所述数据项在变更前的所述初始数据项,根据所述初始数据项更新所述数据项。

例如,在异常数据的异常原因为数据项d1的情况下,将缓存键p0023r56对应的缓存的缓存值队列中将存储于队尾的数据项d1删除,并获取数据项d1在变更前的初始数据项d0,在数据库中用初始数据项d0更新数据项d1。

步骤s110,针对所述目标缓存值进行业务逻辑的处理,处理后获得的业务数据向所述用户返回。

具体的,针对目标缓存值进行业务逻辑的处理,是指将目标缓存值与其他业务返回数据进行融合,并将处理后获得的业务数据项用户返回,完成用户的访问请求。

实际应用中,针对数据项还可以进行再次变更,并针对再次变更的变更数据项基于缓存进行灰度控制,保证了数据项变更至变更数据项的平滑过渡,增加了业务系统的安全性,本说明书实施例提供的一种可选实施方式中,所述针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回步骤执行之后,还包括:

在接收到针对所述数据项的变更指令的情况下,根据所述变更指令携带的变更数据项对所述数据项进行更新;

在所述缓存值队列中将存储于队首的缓存值进行删除;

将所述变更数据项存储至所述缓存值队列的队尾。

例如,在接收到针对数据项d1提交变更指令的情况下,根据变更指令中携带的变更数据项d2更新数据项d1,并在缓存键p0023r56对应的缓存的缓存值队列中将存储于队首的初始数据项d0删除,将变更后的变更数据项d2存储至此缓存值队列的队尾。

具体实施时,在数据项的变更时长大于等于其对应的缓存的缓存灰度时间的基础上,因为完成了从初始数据项到数据项的变更的灰度控制,则可以将存储初始数据项的缓存值进行删除,释放了缓存资源,增加了业务系统的效率,本说明书实施例提供的一种可选实施方式中,所述针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回步骤执行之后,还包括:

在所述缓存值队列中将存储于队首的缓存值进行删除。

例如,在数据项d1的变更时间超过缓存的缓存灰度时间的情况下,将缓存值队列中存储初始数据项d0的缓存值进行删除。

下述结合附图2,以本说明书提供的缓存处理方法在业务系统中的应用为例,对所述缓存处理方法进行进一步说明。其中,图2示出了本说明书一个实施例提供的一种应用于业务系统的缓存处理方法的处理流程图,具体步骤包括步骤s202至步骤s226。

步骤s202,基于业务系统中用户的访问请求中携带的访问信息确定访问信息对应的缓存键。

步骤s204,根据缓存键获取对应的缓存的缓存值队列的队列长度。

步骤s206,在队列长度大于长度阈值的情况下,获取缓存对应的灰度配置。

步骤s208,基于灰度配置中包含的灰度时间确定针对缓存的缓存灰度时间。

步骤s210,获取缓存对应的数据项的变更时间以及业务系统时间,其中,变更时间是在将初始数据项变更为数据项的时间。

步骤s212,根据业务系统的系统时间与变更时间的差值,计算针对数据项的变更时长。

步骤s214,判断变更时长是否大于等于缓存灰度时间;

若是,表明针对变更后的数据项基于缓存的灰度控制已经实现完成,可将更新后的数据项应用至所有的用户,执行下述步骤s216;

若否,表明针对变更后的数据项基于缓存的灰度控制还未实现完成,执行下述步骤s218。

步骤s216,将缓存值队列中存储于队尾的缓存值确定为目标缓存值。

步骤s218,基于变更时长,确定在灰度配置中灰度用户的灰度比例。

步骤s220,根据灰度比例,确定灰度用户的用户标识区间。

步骤s222,判断用户标识是否在用户标识区间内;

若是,表明所述用户是灰度用户,执行上述步骤s216;

若否,表明所述用户不是灰度用户,执行下述步骤s224。

步骤s224,将缓存值队列中存储于队首的缓存值确定为目标缓存值。

步骤s226,针对目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向用户返回。

本说明书一个实施例,通过基于用户的访问请求中携带的访问信息确定的缓存键,获取缓存键对应的的缓存的缓存值列队的列队长度,在列队长度大于长度阈值的情况下,表明缓存对应的数据项是变更后的数据项,则根据用户请求中携带的用户标识以及所述缓存对应的灰度配置确定访问请求对应的目标缓存值是缓存值队列中存储变更前的初始数据项的缓存值还是存储变更后的数据项的缓存值,并将目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回,实现了将数据项从用户维度按照灰度比例缓慢生效,有利于在少量用户生效后可以发现问题,快速回滚,防止因数据项的错误引发业务系统出现故障,或引发用户的访问请求流量熔断、数据错误等业务问题。

本说明书提供的一种缓存处理装置实施例如下:

与上述方法实施例相对应,本说明书还提供了缓存处理装置实施例,图3示出了本说明书一个实施例提供的一种缓存处理装置的结构示意图。如图3所示,该装置包括:

确定缓存键模块302,被配置为基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

获取长度模块304,被配置为根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

获取配置模块306,被配置为在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

确定缓存值模块308,被配置为基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

返回模块310,被配置为针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

可选的,所述确定缓存值模块308,包括:

确定灰度时间子模块,被配置为基于所述灰度配置中包含的灰度时间确定针对所述缓存的缓存灰度时间;

获取时间子模块,被配置为获取所述缓存对应的数据项的变更时间以及业务系统时间,所述变更时间是在所述基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键步骤执行之前将初始数据项变更为所述数据项的时间;

计算子模块,被配置为根据所述业务系统时间与所述变更时间的差值,计算针对所述数据项的变更时长;

判断时间子模块,被配置为判断所述变更时长是否大于等于所述缓存灰度时间;

若是,运行第一确定子模块,所述第一确定子模块,被配置为将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值。

可选的,若所述判断时间子模块的判断结果为否,运行如下子模块:

确定灰度比例子模块,被配置为基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例;

确定区间子模块,被配置为根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断区间子模块,被配置为判断所述用户标识是否在所述用户标识区间内;

若是,运行第二确定子模块,所述第二确定子模块,被配置为将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,运行第三确定子模块,所述第三确定子模块,被配置为将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,若所述判断时间子模块的判断结果为否,运行如下子模块:

确定用户标识子模块,被配置为基于所述变更时长以及所述灰度配置,确定所述变更时长对应的白名单用户的白名单用户标识;

判断白名单用户子模块,被配置为根据所述用户标识以及所述白名单用户标识,判断所述用户是否属于所述白名单用户;

若是,运行第四确定子模块,所述第四确定子模块,被配置为将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,运行第五确定子模块,所述第五确定子模块,被配置为将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,若所述判断时间子模块的判断结果为否,运行如下子模块:

确定特征子模块,被配置为基于所述变更时间,确定所述灰度配置中的灰度特征以及所述灰度特征的灰度特征值;

获取特征值子模块,被配置为根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断特征值子模块,被配置为判断所述用户特征值是否与所述灰度特征值匹配;

若是,运行第六确定子模块,所述第六确定子模块,被配置为将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,运行第七确定子模块,所述第七确定子模块,被配置为将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,若所述判断时间子模块的判断结果为否,运行如下子模块:

确定灰度子模块,被配置为基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例、灰度特征以及所述灰度特征的灰度特征值;

确定标识区间子模块,被配置为根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断标识区间子模块,被配置为判断所述用户标识是否存在于所述用户标识区间内;

若存在,运行获取用户特征值子模块,所述获取用户特征值子模块,被配置为根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断用户特征值子模块,被配置为判断所述用户特征值是否与所述灰度特征值匹配;

若是,运行第八确定子模块,所述第八确定子模块,被配置为将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,运行第九确定子模块,所述第九确定子模块,被配置为将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

可选的,所述缓存处理装置,还包括:

第一更新数据项模块,被配置为在接收到针对所述数据项的变更指令的情况下,根据所述变更指令携带的变更数据项对所述数据项进行更新;

第一删除模块,被配置为在所述缓存值队列中将存储于队首的缓存值进行删除;

存储模块,被配置为将所述变更数据项存储至所述缓存值队列的队尾。

可选的,所述缓存处理装置,还包括:

第二删除模块,被配置为在所述缓存值队列中将存储于队首的缓存值进行删除。

可选的,所述缓存处理装置在所述缓存灰度时间内,运行如下模块:

获取异常数据模块,被配置为获取所述缓存灰度时间内产生的异常数据;

异常分析模块,被配置为对所述异常数据进行异常分析,获得所述异常分析的分析结果;

确定原因模块,被配置为根据所述分析结果确定产生所述异常数据的异常原因。

可选的,所述缓存处理装置,还包括:

第三删除模块,被配置为在所述异常原因为所述数据项的情况下,在所述缓存值队列中将存储于队尾的缓存值进行删除;

第二更新数据项模块,被配置为获取针对所述数据项在变更前的所述初始数据项,根据所述初始数据项更新所述数据项。

上述为本实施例的一种缓存处理装置的示意性方案。需要说明的是,该缓存处理装置的技术方案与上述的缓存处理方法的技术方案属于同一构思,缓存处理装置的技术方案未详细描述的细节内容,均可以参见上述缓存处理方法的技术方案的描述。

本说明书提供的一种计算设备实施例如下:

图4示出了根据本说明书一个实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。

计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备400还可以是移动式或静止式的服务器。

本说明书提供一种计算设备,包括存储器410、处理器420及存储在存储器上并可在处理器上运行的计算机指令,所述处理器420用于执行如下计算机可执行指令:

基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的缓存处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述缓存处理方法的技术方案的描述。

本说明书提供的一种计算机可读存储介质实施例如下:

本说明书提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的缓存处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述缓存处理方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。


技术特征:

1.一种缓存处理方法,包括:

基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

2.根据权利要求1所述的缓存处理方法,所述基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值,包括:

基于所述灰度配置中包含的灰度时间确定针对所述缓存的缓存灰度时间;

获取所述缓存对应的数据项的变更时间以及业务系统时间,所述变更时间是在所述基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键步骤执行之前将初始数据项变更为所述数据项的时间;

根据所述业务系统时间与所述变更时间的差值,计算针对所述数据项的变更时长;

判断所述变更时长是否大于等于所述缓存灰度时间;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值。

3.根据权利要求2所述的缓存处理方法,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例;

根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断所述用户标识是否在所述用户标识区间内;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

4.根据权利要求2所述的缓存处理方法,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长以及所述灰度配置,确定所述变更时长对应的白名单用户的白名单用户标识;

根据所述用户标识以及所述白名单用户标识,判断所述用户是否属于所述白名单用户;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

5.根据权利要求2所述的缓存处理方法,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时间,确定所述灰度配置中的灰度特征以及所述灰度特征的灰度特征值;

根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断所述用户特征值是否与所述灰度特征值匹配;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

6.根据权利要求2所述的缓存处理方法,若所述判断所述变更时长是否大于等于所述缓存灰度时间子步骤的判断结果为否,执行如下操作:

基于所述变更时长,确定在所述灰度配置中灰度用户的灰度比例、灰度特征以及所述灰度特征的灰度特征值;

根据所述灰度比例,确定所述灰度用户的用户标识区间;

判断所述用户标识是否存在于所述用户标识区间内;

若存在,根据所述用户标识获取所述用户针对所述灰度特征的用户特征值;

判断所述用户特征值是否与所述灰度特征值匹配;

若是,将所述缓存值队列中存储于队尾的缓存值确定为所述目标缓存值;

若否,将所述缓存值队列中存储于队首的缓存值确定为所述目标缓存值。

7.根据权利要求2所述的缓存处理方法,所述针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回步骤执行之后,还包括:

在接收到针对所述数据项的变更指令的情况下,根据所述变更指令携带的变更数据项对所述数据项进行更新;

在所述缓存值队列中将存储于队首的缓存值进行删除;

将所述变更数据项存储至所述缓存值队列的队尾。

8.根据权利要求2所述的缓存处理方法,所述针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回步骤执行之后,还包括:

在所述缓存值队列中将存储于队首的缓存值进行删除。

9.根据权利要求3所述的缓存处理方法,在所述缓存灰度时间内,执行如下操作:

获取所述缓存灰度时间内产生的异常数据;

对所述异常数据进行异常分析,获得所述异常分析的分析结果;

根据所述分析结果确定产生所述异常数据的异常原因。

10.根据权利要求9所述的缓存处理方法,所述根据所述分析结果确定产生所述异常数据的异常原因步骤执行之后,还包括:

在所述异常原因为所述数据项的情况下,在所述缓存值队列中将存储于队尾的缓存值进行删除;

获取针对所述数据项在变更前的所述初始数据项,根据所述初始数据项更新所述数据项。

11.一种缓存处理装置,包括:

确定缓存键模块,被配置为基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

获取长度模块,被配置为根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

获取配置模块,被配置为在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

确定缓存值模块,被配置为基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

返回模块,被配置为针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

12.一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;

根据所述缓存键获取对应的缓存的缓存值队列的队列长度;

在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;

基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;

针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

13.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至10任意一项所述缓存处理方法的步骤。

技术总结
本说明书实施例提供缓存处理方法以及装置,其中所述缓存处理方法包括:基于用户的访问请求中携带的访问信息确定所述访问信息对应的缓存键;根据所述缓存键获取对应的缓存的缓存值队列的队列长度;在所述队列长度大于长度阈值的情况下,获取所述缓存对应的灰度配置;基于所述灰度配置以及所述访问请求中携带的所述用户的用户标识,确定所述访问请求对应的目标缓存值;针对所述目标缓存值进行业务逻辑的处理,将处理后获得的业务数据向所述用户返回。

技术研发人员:宋电涛
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2020.01.19
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59398.html

最新回复(0)