CN110851433B - 键值存储***键优化方法、存储介质、电子设备及*** - Google Patents
键值存储***键优化方法、存储介质、电子设备及*** Download PDFInfo
- Publication number
- CN110851433B CN110851433B CN201810843438.4A CN201810843438A CN110851433B CN 110851433 B CN110851433 B CN 110851433B CN 201810843438 A CN201810843438 A CN 201810843438A CN 110851433 B CN110851433 B CN 110851433B
- Authority
- CN
- China
- Prior art keywords
- key
- storage system
- ideographic
- value storage
- keys
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种键值存储***键优化方法、存储介质、电子设备及***,涉及软件工程领域,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的表意键,其包括,获取键值存储***的运行时内存空闲率以及表意键。若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串。若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
Description
技术领域
本发明涉及软件工程领域,具体涉及一种键值存储***键优化方法、存储介质、电子设备及***。
背景技术
键值存储***广泛应用在软件工程领域,特别是在对并发和性能要求较高的***中,较频繁的使用键值存储***。以Redis为例,Redis数据库最重要的概念是Key(以下简称键),有不同类型的数据结构,但是都需要使用key来寻址。在不同的业务场景中,设计不同的键的形式,如用户的个人信息,设计类似user:10001:info的形式的Key,方便业务使用。
但是这些键都是以表意的形式进行命名,并和相应的值进行对应,故可以称这些键为表意键。但是在一些复杂的业务场景下,表意键的表达的意思较为复杂,进而会造成其命名长度较长。以Redis为例,Redis作为一个NoSQL内存数据库,其属于键值存储***中的一种,当Redis中用户的id较长时,如user:123456789 123456:info,或者业务名称复杂,如china:hubei:wuhan:hanko u:20180102:pm:temperature等类似这样的形式的表意键,Redis需要花费较多的资源对这些表意键进行读取。即业务场景复杂难免会出现如此长度复杂的表意键,这样的表意键虽然形式上开发人员比较容易辨识,但是在Redis进行使用和管理时,会造成巨大的耗费。首先是这样的表意键会造成大量的内存使用,表意键个数不多时内存使用还可控,但是当表意键数量过多时将会占据比实际业务数据更多的内存空间,这是不利于***维护和管理的;其次,这样长度的表意键在Redis查找中也会造成一些性能损失,因为Redis内部对表意键进行管理时使用的是哈希表。对表意键进行寻址时,首先需要对表意键进行hash,找到哈希表的桶,如果发生碰撞,则采用链地址法进行数据存储。过长的表意键在Redis进行寻址时的hash操作时会有一些性能耗费,当海量查询数据涌进Redis服务器时,将会有更多的时间和内存消耗。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种键值存储***键优化方法、存储介质、电子设备及***,能够优化键值存储***中表意键占用的资源。
为达到以上目的,第一方面,本发明实施例提供一种键值存储***键优化方法,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的键,其包括:
获取键值存储***的运行时内存空闲率以及表意键;
若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串;
若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
优选的,所述优化键值存储***中表意键占用的资源的具体步骤为:
A1:获取键值存储***中的表意键,计算键值存储***中表意键的长度,若表意键的长度大于第二阈值,则进入步骤A2,若表意键的长度小于或等于第二阈值,则进入步骤A3;
A2:获取键值存储***的运行时内存空闲率,若内存空闲率小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则进入步骤A5;
A3:获取键值存储***的运行时内存空闲率,若空闲率低于小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则不进行优化;
A4:设置存储于键值存储***外部的表意键与中间键一一对应关系表,并根据所述对应关系使用中间键替换键值存储***内的表意键;
A5:对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
优选的,所述键值存储***实时获取键值存储***的运行时内存空闲率以及键,进行判断并根据判断结果进行优化。
优选的,所述对表意键键进行压缩得到压缩键包括以下步骤:
对表意键使用信息摘要算法,得到压缩编码后的键;
截取所述压缩编码后的键的中间位字符,将该中间位字符作为压缩键。
优选的,所述信息摘要算法为MD5(Message Digest Algorithm 5,消息摘要算法第五版)。
优选的,键值存储***为分布式key-value存储***。
优选的,所述分布式key-value存储***为Redis数据库。
第二方面,本发明还提供一种键值存储***键优化***,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的键,其包括:
获取模块,用于获取键值存储***的运行时内存空闲率以及表意键;
对应模块,用于若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串;
压缩模块,用于若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
第三方面,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例中的方法。
第四方面,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例中的方法。
与现有技术相比,本发明的优点在于:
本发明一种键值存储***键优化方法、存储介质、电子设备及***根据***的运行时的状态进行具体调整,能够较好的贴合***的需要辅助***更加效率和快速的运行,其调整包括在键值存储***外部设置表意键与中间键对应关系表,使得较长的表意键在键值存储***进行读取和对应,进而键值存储***本身只需要使用较短的中间键的读取和对应,即满足了用户在外部通过表意键理解状况的需求,也满足了键值存储***只需要唯一键值对应关系,其键长短的需求,保证键值存储***能够高效的运行;此外,在***空闲率较多的且表意键过长时,本发明还能够对表意键进行压缩,通过压缩后,较短的压缩键来对应键值存储***中的值,进一步优化键值存储***中键占用的资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对实施例对应的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种键值存储***键优化方法流程示意图;
图2为本发明实施例一种键值存储***键优化方法另一流程示意图;
图3为本发明实施例一种键值存储***键优化***结构示意图。
图中:1-获取模块,2-对应模块,3-压缩模块。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
参见图1所示,本发明实施例提供一种键值存储***键优化方法、存储介质、电子设备及***,其通过优化表意键占用的资源能够加快***运行速度以及使用资源。
为达到上述技术效果,本申请的总体思路如下:
获取键值存储***的运行时内存空闲率以及表意键;
若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串;
若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
综上所述,本发明通过获取***运行时候内存的空闲率,来知晓当前***是否能够支撑额外的内部运算,如果***的内存空闲率较低,说明在***内部增加额外的运算等,降低表意键消耗资源可能是得不偿失的,则在键值存储***外,设置优化的步骤。
对于本发明,则采用在键值存储***外设置对应关系,该对应关系表示表意键和另一较短的键即中间键的关系,当用户需要获取键值存储***中的值的时候,先在键值存储***的外部,通过对应关系表获得中间键,然后较短中间键再再键值存储***中获取对应的值。
进一步的,如果***的内存空闲率较高,则说明键值存储***有额外的能力进行运算,因此使用键值存储***对键进行压缩,使用压缩的键替换原表意键。用户在读取存储的值后,只需要使用被压缩后的压缩键即可。
为了更好的理解上述技术方案,下面结合具体实施方式进行详细的说明。
实施例一
本发明实施例提供一种键值存储***键优化方法,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的键,该方法包括:
S1:获取键值存储***的运行时内存空闲率以及表意键。
在对键值存储***中的表意键进行优化之前,需要知道当前***的状态,以便后续再***处于不同状态时,进行不同的优化方案。同时本发明针对表意键进行优化,因此需要获取表意键从而针对表意键进行具体的操作。
需要说明的是,虽然***在实际运行时候,内存空闲率是波动的,但是本申请中的内存空闲率为根据用户需求对波动内存空闲率进行取值的:
如果用户需求键值存储***时刻保持在速度最高的状态,那么获取的为波动的内存空闲率的最低值,即在***运作最忙碌时判断,是否可能对其造成干扰,进而导致***速度下降。而如果最忙的时候都不会造成干扰,那么对于其他相对来说不忙碌的时间段,则更不会加重运行负担。
如果用户需求键值存储***的资源消耗保持在最小,那么获取的为波动的内存空闲率中的最高值,即在***最空闲的时候,只要不会造成***因为内存不够出现卡顿以及崩溃即可。
而如果用户需求在上述速度和资源损耗取最佳值,则可以根据需要获取波动的空闲率的平均值,或根据预设的算法、实际试验获得内存空闲率对应的数值。
S2:若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串。
如果键值存储***中内存空闲率小于预设的第一阈值,则说明键值存储***其运行压力较大,此时如果再在该***中添加新的运算方法,可能会造成键值存储***运行压力过大而崩溃。
因此在内存空闲率小于预设的第一阈值时候,在键值存储***外部,设置对应关系表,该对比关系表存储了表意键和中间键的一一对应关系;使用中间键将键值存储***中对应的表意键一一替换。而中间键可以是人为设置的,也可以是***设置的,只要相对表意键字符长度更小的键即可。
用户在使用键值存储***前,向外部的***输入表意键,外部的***通过对应关系表,得到中间键,将中间键传输给键值存储***,键值存储***由于其表意键已经被中间键替换,可以通过字符长度较短的中间键进行匹配对应。实现了键的优化。
S3:若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
如果内存空闲率大于预设的第一阈值,则说明当前键值存储***其运行有较大的余裕,能够使用更加效率的优化方法,对表意键进行优化:
对表意键的键长度进行判断,如果其长度超过了预设的第二阈值,即该表意表意键的长度过长,那么对该表意键进行压缩,得到字符长度缩减更效率的压缩键。使用压缩键替换键值存储***中的表意键。用户在使用键值***时候,只需要使用压缩键来从键值存储***中获取对应的值即可了。
优选的,由于键值存储***中表意键与值的对应关系为一一对应关系,因此在压缩表意键的时候,需要保证得到的压缩键是唯一的。从而使得压缩键和键值存储***中的值时唯一且一一对应的。
作为一个优选的方案,压缩键值的方法为对表意键使用信息摘要算法,得到压缩编码后的键。
进一步的,截取该压缩后的键的中间位字符,将该中间字符作为压缩键。
进一步的,上述的信息摘要算法为MD5(Message Digest Algorithm 5,消息摘要算法第五版)。
信息摘要算法能够在快速且大幅度压缩表意键的同时保证压缩后的键和表意键是唯一且一一对应的。从而保证键值存储***中压缩键与值的唯一且一一对应。
在使用信息摘要算法得到压缩后的键后,在截取其中间位的字符能够进一步的缩短表意键的字符长度。通过实际试验得到的结果中,使用信息摘要算法将表意键压缩为32位字符串后,去其中间连续的16位字符串,仍能保证压缩键和键值存储***中值的对应关系。
MD5信息摘要算法为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。具有特点:压缩性强,任意长度的数据,算出的MD5值长度都是固定的;容易计算,从原数据计算出MD5值很容易;抗修改性,对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别;强抗碰撞,已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
作为一个优选的实施方式,上述的键值存储***为分布式key-value存储***,进一步的,该分布式key-value存储***为Redis***。
Redis***是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。其支持相对更多的存储的value类型,同时支持各种不同方式的排序。具有高性能、高效率的特点。
作为一个优选地实施方式,本发明是实时根据键值存储***的内存空闲率选择优化方式的。即当键值存储***的内存空闲率小于第一阈值时,使用上述设置对应关系表的方式,对表意键进行优化,而在内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值时,使用压缩的方式优化键值存储***中的表意键占用资源,减轻***运行负担。
具体来说,本发明其优化键值存储***中表意键占用的资源包括以下步骤:
A1:获取键值存储***中的键,计算键值存储***中表意键的长度,若表意键的长度大于第二阈值,则进入步骤A2,若表意键的长度小于或等于第二阈值,则进入步骤A3;
A2:获取键值存储***的运行时内存空闲率,若内存空闲率小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则进入步骤A5;
A3:获取键值存储***的运行时内存空闲率,若空闲率低于小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则不进行优化;
A4:设置存储于键值存储***外部的表意键与中间键一一对应关系表,并根据所述对应关系使用中间键替换键值存储***内的表意键;
A5:对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
作为一个优选的实施方式,上述的键值存储***为分布式key-value存储***,进一步的,该分布式key-value存储***为Redis***。
Redis***是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。其支持相对更多的存储的value类型,同时支持各种不同方式的排序。具有高性能、高效率的特点。
本发明针对键值存储***中的表意键进行优化,因此优先对表意键进行判断,先判断其是否需要进行优化,如果需要进行优化,则进一步判断当前键值存储***是否有优化的余裕,即内存空闲率和预设的第一阈值的关系,如果键值存储***运行良好,能够进行添加优化方案,则使用对表意键压缩的方式,保证最大化的优化效率和速度;而如果内存空闲率较低,键值存储***不足以支撑对表意键的优化,则在键值存储***外部设置对应关系表,使用***外部的辅助硬件或者***,帮助优化。
需要说明的是如果表意键的键长度小于预设的第二阈值,通过式空闲率大于预设的第一阈值,则说明该键值存储***挡墙运行良好,不需要对表意键进行优化,此时,不对键值存储***进行任何动作,使其正常工作即可。
基于同一发明构思,本申请提供实施例二,其具体实施方式如下。
实施例二
本发明实施例还提供一种键值存储***键优化***,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的键,其包括:
获取模块,用于获取键值存储***的运行时内存空闲率以及表意键;
对应模块,用于若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串;
压缩模块,用于若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
前述方法实施例中的各种变化方式和具体实例同样适用于本实施例的***,通过前述方法的详细描述,本领域技术人员可以清楚的知道本实施例中***的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本申请提供实施例三。
实施例三
本发明第三实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一实施例中的所有方法步骤或部分方法步骤。
本发明实现上述第一实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
基于同一发明构思,本申请提供实施例四。
实施例四
本发明第四实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一实施例中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
总体来说,本发明实施例提供的一种键值存储***键优化方法、存储介质、电子设备及***,通过对内存空闲率和表意键的状态,选择性的进行资源优化,相较于传统的技术等等,能够针对更多的***状态,实现不同的优化方式,能够更好的减少键值存储***的资源占用,使得***运行更加流畅以及高效。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种键值存储***键优化方法,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的键,其特征在于,其包括:
获取键值存储***的运行时内存空闲率以及表意键;
若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串;
若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键;
所述优化键值存储***中表意键占用的资源的具体步骤为:
A1:获取键值存储***中的表意键,计算键值存储***中表意键的长度,若表意键的长度大于第二阈值,则进入步骤A2,若表意键的长度小于或等于第二阈值,则进入步骤A3;
A2:获取键值存储***的运行时内存空闲率,若内存空闲率小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则进入步骤A5;
A3:获取键值存储***的运行时内存空闲率,若空闲率低于小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则不进行优化;
A4:设置存储于键值存储***外部的表意键与中间键一一对应关系表,并根据所述对应关系使用中间键替换键值存储***内的表意键;
A5:对表意键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
2.如权利要求1所述的方法,其特征在于:所述键值存储***实时获取键值存储***的运行时内存空闲率以及键,进行判断并根据判断结果进行优化。
3.如权利要求1所述的方法,其特征在于:所述对表意键进行压缩得到压缩键包括以下步骤:
对表意键使用信息摘要算法,得到压缩编码后的键;
截取所述压缩编码后的键的中间位字符,将该中间位字符作为压缩键。
4.如权利要求3所述的方法,其特征在于:所述信息摘要算法为MD5(Message DigestAlgorithm 5,消息摘要算法第五版)。
5.如权利要求1所述的方法,其特征在于:键值存储***为分布式key-value存储***。
6.如权利要求5所述的方法,其特征在于:所述分布式key-value存储***为Redis数据库。
7.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述的方法。
8.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的方法。
9.一种键值存储***键优化***,应用于优化键值存储***中表意键占用的资源,所述表意键为键值存储***中与值对应的键,其特征在于,其包括:
获取模块,用于获取键值存储***的运行时内存空闲率以及表意键;
对应模块,用于若内存空闲率小于预设的第一阈值,则设置表意键和中间键的对应关系表,并将该对应关系表存储于键值存储***外部,并根据所述对应关系使用中间键替换键值存储***内的表意键,所述中间键为长度小于表意键的字符串;
压缩模块,用于若内存空闲率大于预设的第一阈值,且表意键的长度超过预设的第二阈值,则对表意键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键;
所述优化键值存储***中表意键占用的资源的具体步骤为:
A1:获取键值存储***中的表意键,计算键值存储***中表意键的长度,若表意键的长度大于第二阈值,则进入步骤A2,若表意键的长度小于或等于第二阈值,则进入步骤A3;
A2:获取键值存储***的运行时内存空闲率,若内存空闲率小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则进入步骤A5;
A3:获取键值存储***的运行时内存空闲率,若空闲率低于小于预设的第一阈值,则进入步骤A4,若所述内存空闲率大于预设的第一阈值,则不进行优化;
A4:设置存储于键值存储***外部的表意键与中间键一一对应关系表,并根据所述对应关系使用中间键替换键值存储***内的表意键;
A5:对表意键进行压缩得到压缩键,使用压缩键替换键值存储***中的表意键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810843438.4A CN110851433B (zh) | 2018-07-27 | 2018-07-27 | 键值存储***键优化方法、存储介质、电子设备及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810843438.4A CN110851433B (zh) | 2018-07-27 | 2018-07-27 | 键值存储***键优化方法、存储介质、电子设备及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851433A CN110851433A (zh) | 2020-02-28 |
CN110851433B true CN110851433B (zh) | 2022-06-17 |
Family
ID=69594708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810843438.4A Active CN110851433B (zh) | 2018-07-27 | 2018-07-27 | 键值存储***键优化方法、存储介质、电子设备及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851433B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420191B (zh) * | 2020-12-17 | 2024-07-05 | 阿里巴巴集团控股有限公司 | 数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质 |
CN112818081A (zh) * | 2021-02-24 | 2021-05-18 | 三一重工股份有限公司 | 用于键值对文本的压缩、解压缩方法、***及作业机械 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852822A (en) * | 1996-12-09 | 1998-12-22 | Oracle Corporation | Index-only tables with nested group keys |
CN102141995A (zh) * | 2010-01-29 | 2011-08-03 | 国际商业机器公司 | 简化并行计算***中的传输的***与方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424314B (zh) * | 2013-09-06 | 2019-06-11 | Sap欧洲公司 | 对列状表数据库的数据库操作 |
IN2013CH05424A (zh) * | 2013-11-26 | 2015-05-29 | Inmobi Pte Ltd |
-
2018
- 2018-07-27 CN CN201810843438.4A patent/CN110851433B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5852822A (en) * | 1996-12-09 | 1998-12-22 | Oracle Corporation | Index-only tables with nested group keys |
CN102141995A (zh) * | 2010-01-29 | 2011-08-03 | 国际商业机器公司 | 简化并行计算***中的传输的***与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110851433A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649905B2 (en) | Method and apparatus for storing data | |
CN108228188A (zh) | 一种视图组件处理方法、电子设备及可读存储介质 | |
CN105205014A (zh) | 一种数据存储方法和装置 | |
CN110851433B (zh) | 键值存储***键优化方法、存储介质、电子设备及*** | |
CN110618974A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN104268229A (zh) | 一种基于多进程浏览器的资源获得方法及装置 | |
US20150121111A1 (en) | System and method for providing multi-user power saving codebook optmization | |
WO2018161791A1 (zh) | 可执行文件的压缩方法及装置 | |
US9864536B2 (en) | System and method for conserving power consumption in a memory system | |
CN104679493A (zh) | 一种流程化的事件处理机制的改进方法 | |
CN104484132A (zh) | 数据缩减的方法及装置 | |
CN107577474B (zh) | 升级文件的处理方法及装置、电子设备 | |
CN112800091A (zh) | 一种流批一体式计算控制***及方法 | |
CN112927311B (zh) | 样点自适应补偿的边带补偿模式的数据处理方法、装置 | |
CN108234552B (zh) | 一种数据存储方法及装置 | |
CN113641643A (zh) | 文件写入方法及装置 | |
CN114238213A (zh) | 多线程文件解析方法及装置 | |
CN114780501A (zh) | 数据处理方法、电子设备和计算机程序产品 | |
CN111104381A (zh) | 一种日志管理方法、装置、设备及计算机可读存储介质 | |
CN110569259A (zh) | 一种大批量数据的处理方法及装置 | |
CN111444225B (zh) | 通用指标解析方法及装置 | |
CN110162561B (zh) | 离线压缩方法、装置、计算机设备及存储介质 | |
CN118093932B (zh) | 视频处理方法、装置和计算机设备 | |
CN115423674A (zh) | 数据处理方法及装置 | |
CN111722801B (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 |