CN110096296A - 一种缓存对比方法及设备 - Google Patents

一种缓存对比方法及设备 Download PDF

Info

Publication number
CN110096296A
CN110096296A CN201910389989.2A CN201910389989A CN110096296A CN 110096296 A CN110096296 A CN 110096296A CN 201910389989 A CN201910389989 A CN 201910389989A CN 110096296 A CN110096296 A CN 110096296A
Authority
CN
China
Prior art keywords
redis
benchmark
data
file
value
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
Application number
CN201910389989.2A
Other languages
English (en)
Inventor
高银珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Pinwei Software Co Ltd
Original Assignee
Guangzhou Pinwei Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Pinwei Software Co Ltd filed Critical Guangzhou Pinwei Software Co Ltd
Priority to CN201910389989.2A priority Critical patent/CN110096296A/zh
Publication of CN110096296A publication Critical patent/CN110096296A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种缓存对比方法及设备,其中方法包括:获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件;根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误。本申请通过生成基准文件,然后根据基准文件对待检测的redis服务器进行校验,识别出待检测的redis服务器中的缓存数据是否被污染,记录并标记错误的数据,形成报告,为以后测试和修正提供依据,解决未完成升级的客户端对线上缓存造成污染,出现新代码解析不了缓存的情况的技术问题。

Description

一种缓存对比方法及设备
技术领域
本申请涉及服务器技术领域,尤其涉及一种缓存对比方法及设备。
背景技术
计算机软件领域,进行客户端升级、软件升级或APP升级是常见的。其中,灰度升级是升级的其中一种重要且应用广泛的方式。
在软件灰度升级的过程中,先升级一部分客户端,其他客户端仍保留未升级的状态,他们在被使用的过程中都与同一个服务器集群进行联系,并下载或上传服务器的缓存,例如买家端上传收货地址到服务器缓存,卖家端再从服务器缓存中下载收货地址等。而服务器的缓存通常是索引、数据类型、数据长度等描述数据信息的值和具体数据组成,比如redis数据库由KEY、value等数据组成。
上述这些情况就导致了当其中大部分已经升级完成的客户端均已采用新代码的redis服务器,采用新的缓存的KEY和value,但是仍有一些没有升级客户端没有升级而采用旧代码,使用同一个redis数据库的KEY,但是对应的value结构不同,导致了这些没有升级的客户端上传到服务器redis数据库中的数据是旧的缓存的KEY和value,污染了服务器redis数据库。当已经升级完成的客户端下载被污染了的服务器redis数据库中的旧的缓存的KEY和value后,无法对旧的缓存的KEY和value进行解析,出现错误,造成线上故障,最后只能回滚代码。即未升级客户端上传了旧的错误的缓存数据到redis服务器中污染了redis服务器。
因此,灰度过程中,因为新旧代码使用同一个redis缓存key,但value结构不同,导致未完成升级的客户端对线上缓存造成污染,出现新代码解析不了缓存的情况,是本领域技术人员亟需解决的技术问题。
发明内容
本申请提供了一种缓存对比方法及设备,用于解决未完成升级的客户端对线上缓存造成污染,出现新代码解析不了缓存的情况的技术问题。
有鉴于此,本申请第一方面提供了一种缓存对比方法,包括:
获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件;
根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误。
优选地,获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件具体包括:
读取基准redis服务器中的基线redisKey文件以及基准redis服务器中的所有redis值;
根据基线redisKey文件的基线Key值遍历所有redis值,找出与基线Key值对应的redis值;
根据基线Key值与对应的redis值生成基准jsonschema文件。
优选地,根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准包括:
根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中的与基线Key值对应的redis值;
对比基准jsonschema文件中的与基线Key值对应的redis值与待检测的redis服务器中的与基线Key值对应的redis值是否相同。
优选地,根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误包括:
根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中是否存在基准jsonschema文件中不存在的基线Key值,若是,则将待检测的redis服务器中存在的基准jsonschema文件中不存在的基线Key值记录并标记。
优选地,根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误包括:
根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中是否缺失基准jsonschema文件中的基线Key值,若是,则记录并标记待检测的redis服务器中缺失的基线Key值。
优选地,所述记录并标记数据错误具体通过diffview插件记录并标记数据错误。
优选地,所述记录并标记数据错误后还包括:
发送邮件至与错误数据对应的邮箱。
优选地,所述redis值具体为redisValue类型值。
本申请第二方面提供一种缓存对比设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面的缓存对比方法。
本申请第三方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面的缓存对比方法。
从以上技术方案可以看出,本申请具有以下优点:
本申请提供了一种缓存对比方法及设备,其中方法包括:获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件;根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误。本申请通过生成基准文件,然后根据基准文件对待检测的redis服务器进行校验,识别出待检测的redis服务器中的缓存数据是否被污染,记录并标记错误的数据,形成报告,为以后测试和修正提供依据,解决未完成升级的客户端对线上缓存造成污染,出现新代码解析不了缓存的情况的技术问题。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的一种缓存对比方法的一个实施例的示意图;
图2为本申请提供的一种缓存对比方法的另一个实施例的示意图。
具体实施方式
本申请提供了一种缓存对比方法及设备,用于解决未完成升级的客户端对线上缓存造成污染,出现新代码解析不了缓存的情况的技术问题。
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
redis:是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,其中的数据包括Key值和Value结构类型等。其中,Value结构类型包括string,hash,list,set及zset(sorted set)等。Key值和Value结构类型具备对应关系,其对应关系的举例如表1所示:
表1
Key值 Value结构类型
1 string
2 string
3 hash
4 list
jsonschema文件:JSON Schema本身也是一个JSON,它规定了其他JSON数据的结构,包括:哪些是必选字段,字段类型是什么,字段内容取值是什么,数组元素个数的最大最小值等等。简单来说,JSON Schema是一系列规则组成的JSON,这些规则规定了JSON数据应该是什么样的格式。可以用jsonschema文件来校验JSON格式的接口返回报文是否合格。将JSON数据与jsonschema文件进行比较,就可以知道JSON数据是否满足条件。
有鉴于此,本申请提供的一种缓存对比方法的一个实施例,如图1所示,包括:
101、获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件;
基准redis服务器是预先选定的,基准redis服务器中的数据都是升级后的客户端用的新的符合要求的缓存数据,通过升级后客户端的新代码可以对新的缓存进行解析。
102、根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误。
本申请通过生成基准文件,然后根据基准文件对待检测的redis服务器进行校验,识别出待检测的redis服务器中的缓存数据是否被污染,记录并标记错误的数据,形成报告,为以后测试和修正提供依据,解决未完成升级的客户端对线上缓存造成污染,出现新代码解析不了缓存的情况的技术问题。
以上是对本申请提供的一种缓存对比方法的一个实施例进行详细的描述,以下将对本申请提供的一种缓存对比方法的另一个实施例进行详细的描述。
请参阅图2,本申请提供的一种缓存对比方法的另一个实施例,包括:
201、读取基准redis服务器中的基线redisKey文件以及基准redis服务器中的所有redis值;
即读取基线redisKey文件,从redis服务器获取所有redis值。
202、根据基线redisKey文件的基线Key值遍历所有redis值,找出与基线Key值对应的redis值;
即依据基线KEY逐一遍历redis服务器中的值;
203、根据基线Key值与对应的redis值生成基准jsonschema文件。
基准jsonschema文件中可以包括如表1所示的基线Key值与redis值的对应关系数据。
然后以基准jsonschema中的key值为标准,去redis服务器中获取所有值,比较后,生成分析结果。
2041、根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中的与基线Key值对应的redis值;对比基准jsonschema文件中的与基线Key值对应的redis值与待检测的redis服务器中的与基线Key值对应的redis值是否相同,若否,则记录并标记数据错误。
即挑出redis key值相同,但redis value结构不同的,记录并标记。
2042、根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中是否存在基准jsonschema文件中不存在的基线Key值,若是,则将待检测的redis服务器中存在的基准jsonschema文件中不存在的基线Key值记录并标记。
即挑出redis服务器中存在的key,但在基线key中不存在的,记录并标记。
2043、根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中是否缺失基准jsonschema文件中的基线Key值,若是,则记录并标记待检测的redis服务器中缺失的基线Key值。
即挑出redis服务器中不存在的key,但在基线key中存在的,记录并标记。
需要说明的是,记录并标记数据错误具体通过diffview插件记录并标记数据错误。
需要说明的是,redis值一般为redisValue类型值。检测Key值和Value结构类型的对应关系是最快捷简单的方法,并且准确率高。
205、发送邮件至与错误数据对应的邮箱。
数据与对应负责人的邮箱的绑定关系可以预先设定,当某一redisValue类型值出现错误时,可以发送邮件至与错误的redisValue类型值对应的邮箱。
本申请提供的缓存对比方法的原理是基于springMVC框架,做业务逻辑、数据、界面的开发。用json-schama-validator,来对JSON数据进行描述和定义,并且提供了相应的机制来检验某个JSON字符串是否符合JSON schema的定义。前端界面,用diffview插件来显式显示新旧redis值,并标红显示差异。对比后将key值相同,value结构不一致的缓存抓取出来,并记录,行成报告。
本申请的缓存对比方法可以定时执行或手动触发指令执行。
本申请的缓存对比方法可以支持多环境多系统,记录的错误数据可以形成报告,报告中可包括数据正确的数量和数据错误的数量。
灰度过程中,因为新旧代码使用同一个redis缓存key,但value结构不同,对线上缓存造成污染,出现旧代码解析不了缓存的情况。不止一次因为这个原因,造成线上故障,回滚代码。本申请提供的redis缓存对比方法,定时/手动触发缓存对比,并生成基准jsonschema,对比后将key值相同,value结构不一致的缓存抓取出来,并记录,行成报告。在功能测试/回归测试阶段投入使用,可以提早的发现redis缓存的兼容性问题。
以下将对本申请提供的一种缓存对比设备进行详细的描述。
本申请提供一种缓存对比设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述实施例的缓存对比方法。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述实施例的缓存对比方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种缓存对比方法,其特征在于,包括:
获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件;
根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误。
2.根据权利要求1所述的一种缓存对比方法,其特征在于,获取基准redis服务器中的数据,并根据基准redis服务器中的数据生成基准文件具体包括:
读取基准redis服务器中的基线redisKey文件以及基准redis服务器中的所有redis值;
根据基线redisKey文件的基线Key值遍历所有redis值,找出与基线Key值对应的redis值;
根据基线Key值与对应的redis值生成基准jsonschema文件。
3.根据权利要求2所述的一种缓存对比方法,其特征在于,根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准包括:
根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中的与基线Key值对应的redis值;
对比基准jsonschema文件中的与基线Key值对应的redis值与待检测的redis服务器中的与基线Key值对应的redis值是否相同。
4.根据权利要求2所述的一种缓存对比方法,其特征在于,根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误包括:
根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中是否存在基准jsonschema文件中不存在的基线Key值,若是,则将待检测的redis服务器中存在的基准jsonschema文件中不存在的基线Key值记录并标记。
5.根据权利要求2所述的一种缓存对比方法,其特征在于,根据基准文件对比判断待检测的redis服务器中的数据是否符合判定标准,若否,则记录并标记数据错误包括:
根据基准jsonschema文件中的基线Key值查找待检测的redis服务器中是否缺失基准jsonschema文件中的基线Key值,若是,则记录并标记待检测的redis服务器中缺失的基线Key值。
6.根据权利要求1所述的一种缓存对比方法,其特征在于,所述记录并标记数据错误具体通过diffview插件记录并标记数据错误。
7.根据权利要求1所述的一种缓存对比方法,其特征在于,所述记录并标记数据错误后还包括:
发送邮件至与错误数据对应的邮箱。
8.根据权利要求2所述的一种缓存对比方法,其特征在于,所述redis值具体为redisValue类型值。
9.一种缓存对比设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-8任一项所述的缓存对比方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-8任一项所述的缓存对比方法。
CN201910389989.2A 2019-05-10 2019-05-10 一种缓存对比方法及设备 Pending CN110096296A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910389989.2A CN110096296A (zh) 2019-05-10 2019-05-10 一种缓存对比方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910389989.2A CN110096296A (zh) 2019-05-10 2019-05-10 一种缓存对比方法及设备

Publications (1)

Publication Number Publication Date
CN110096296A true CN110096296A (zh) 2019-08-06

Family

ID=67447671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910389989.2A Pending CN110096296A (zh) 2019-05-10 2019-05-10 一种缓存对比方法及设备

Country Status (1)

Country Link
CN (1) CN110096296A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078512A (zh) * 2019-11-05 2020-04-28 远景智能国际私人投资有限公司 告警记录生成方法、装置、告警设备及存储介质
CN111639061A (zh) * 2020-05-26 2020-09-08 深圳壹账通智能科技有限公司 Redis集群中数据管理方法、装置、介质及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776795A (zh) * 2016-11-23 2017-05-31 黄健文 基于Hbase数据库的数据写入方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776795A (zh) * 2016-11-23 2017-05-31 黄健文 基于Hbase数据库的数据写入方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078512A (zh) * 2019-11-05 2020-04-28 远景智能国际私人投资有限公司 告警记录生成方法、装置、告警设备及存储介质
CN111078512B (zh) * 2019-11-05 2023-09-12 远景智能国际私人投资有限公司 告警记录生成方法、装置、告警设备及存储介质
CN111639061A (zh) * 2020-05-26 2020-09-08 深圳壹账通智能科技有限公司 Redis集群中数据管理方法、装置、介质及电子设备
CN111639061B (zh) * 2020-05-26 2023-03-17 深圳壹账通智能科技有限公司 Redis集群中数据管理方法、装置、介质及电子设备

Similar Documents

Publication Publication Date Title
CN106951369B (zh) 一种联调测试的管理方法及装置
US7487427B2 (en) Interface workbench for high volume data buffering and connectivity
JP5306360B2 (ja) データ記録を一致させるシステムの分析のための方法およびシステム
EP2737406B1 (en) A system and method for identifying fault prone computer code files
US20130073524A1 (en) Database synchronization and validation
CN107533504A (zh) 用于软件分发的异常分析
US20180060414A1 (en) Language tag management on international data storage
CN107453960A (zh) 一种在服务测试中处理测试数据的方法、装置和系统
CN108647357B (zh) 数据查询的方法及装置
CN114385763A (zh) 数据血缘分析方法、装置、系统及可读存储介质
Salfner et al. Comprehensive logfiles for autonomic systems
CN110096296A (zh) 一种缓存对比方法及设备
CN107577465B (zh) 一种网页代码的校正方法
US10592400B2 (en) System and method for creating variants in a test database during various test stages
US20090204889A1 (en) Adaptive sampling of web pages for extraction
CN114756868A (zh) 一种基于指纹的网络资产与漏洞关联方法及装置
CN113010208A (zh) 一种版本信息的生成方法、装置、设备及存储介质
CN117312270A (zh) 一种数据库自动化构建和部署的变更管理方法
CN107133163A (zh) 一种验证描述类api的方法与设备
CN110008243A (zh) 一种数据表处理方法及装置
US9342512B1 (en) System and method for repairing data synchronization links
CN113254938A (zh) 自动化安全测试结果的处理方法、设备及介质
CN113780950A (zh) 数据处理方法、装置、服务器和可读存储介质
Liu et al. Extraction of attribute dependency graph from database applications
CN110517010A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190806

RJ01 Rejection of invention patent application after publication