CN111930305A - 数据的存储方法和装置、存储介质、电子装置 - Google Patents
数据的存储方法和装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN111930305A CN111930305A CN202010723811.XA CN202010723811A CN111930305A CN 111930305 A CN111930305 A CN 111930305A CN 202010723811 A CN202010723811 A CN 202010723811A CN 111930305 A CN111930305 A CN 111930305A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- storage
- transferring
- key 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Abstract
本申请公开了一种数据的存储方法和装置、存储介质、电子装置。其中,该方法包括:获取第一存储器的第一使用率,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值;在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度。本申请解决了相关技术中数据存储实现方案的成本较高的技术问题。
Description
技术领域
本申请涉及互联网领域,具体而言,涉及一种数据的存储方法和装置、存储介质、电子装置。
背景技术
随着计算机技术的发展,越来越多的计算机技术被应用在各种应用系统,目前的应用系统为了解决高并发带来的性能问题,一般会在应用系统与数据库之间增加缓存层,使用最为广泛的就是Redis(Redis本质上是一个key键、value值类型的内存数据库),Redis作为软件和传统数据库之间的缓冲层,操作命令简单,在保证了数据有效性的情况下,同时也保证了高性能。
相关技术中,是在高速存储器(如内存)中实现Redis,一旦需要缓存的数据超出存储器的存储空间时就需要购买新的高速存储器,从而导致缓存的实现成本较高。类似地,在其他缓存(如NoSQL数据库)的应用中也存在类似的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据的存储方法和装置、存储介质、电子装置,以至少解决相关技术中数据存储实现方案的成本较高的技术问题。
根据本申请实施例的一个方面,提供了一种数据的存储方法,包括:获取第一存储器的第一使用率,其中,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值;在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,其中,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度。
根据本申请实施例的另一方面,还提供了一种数据的存储装置,包括:获取单元,用于获取第一存储器的第一使用率,其中,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值;转存单元,用于在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,其中,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本申请实施例中,考虑到相同容量的存储器,单位存储空间的价格与传输速度成正比,故而本申请的存储系统包括速度递减的存储器,而不是相同容量的高速存储器,既保证了存储容量也降低了使用成本,在使用过程中,根据高速存储器的使用率进行数据迁移,可以解决相关技术中数据存储实现方案的成本较高的技术问题,进而达到降低成本的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据的存储方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的数据的存储方法的流程图;
图3是根据本申请实施例的一种可选的数据的存储方法的流程图;
图4是根据本申请实施例的一种可选的数据的存储装置的示意图;
以及
图5是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
相关技术中的Redis采用社区的开源版本,Redis主要是应用于应用的数据缓冲层,由于Redis数据完全采用内存存储,所以速度很快。但是发明人经过对这些方案进行分析认识到,很多大容量的Redis实例中的键值对在很多情况下用户不会访问,或者使用过后隔很长时间才能访问,但是这些数据一直存在于内存中,这就到导致了线上资源的浪费,从而导致了用户使用Redis的成本的增加。为了克服上述问题,根据本申请实施例的一方面,提供了一种数据的存储方法的方法实施例。
可选地,在本实施例中,上述数据的存储方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等数据服务),可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。
本申请实施例的数据的存储方法可以由服务器103来执行,也可以由服务器103和终端101共同执行,图2是根据本申请实施例的一种可选的数据的存储方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,服务器获取第一存储器的第一使用率,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值。上述存储系统即数据库所在的系统。
步骤S204,在第一使用率满足目标条件的情况下,服务器将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度,相当于第一存储器是高速存储器、第二存储器是相对低速的存储器。
为了保证高速的第一存储器处于一个合理的利用率(即预期利用率,如90%),可以实时监测其使用率(即第一使用率),如果超过某个阈值(如95%)就需要降低使用率,这个时候就可以将第一存储器中的部分数据转移到第二存储器上保存,以保证第一存储器回到上述合理的利用率,避免因为第一存储器数据过多导致服务变慢甚至中断;类似地,如果低于某个阈值(如85%)就需要提高使用率,这个时候就可以将第二存储器中的部分数据转移到第一存储器上保存,以保证第一存储器回到上述合理的利用率,提高其使用效率。
在上述技术方案中,考虑到相同容量的存储器,单位存储空间的价格与传输速度成正比,故而本申请的存储系统包括速度递减的存储器,而不是相同容量的高速存储器,既保证了存储容量也降低了使用成本,在使用过程中,根据高速存储器的使用率进行数据迁移,可以解决相关技术中数据存储实现方案的成本较高的技术问题,进而达到降低成本的技术效果。下面结合图2所示的步骤进一步详述本申请的技术方案。
在步骤S202提供的技术方案中,为了确定第一存储器的第一使用率,可以统计出第一存储器中当前已经被占用的数据存储空间,进而计算已经被占用的数据存储空间与第一存储器中全部数据存储空间之间的比值,如当前被占用的空间为7.8G,全部空间为8G,那么使用率就是97.5%。
在步骤S204提供的技术方案中,在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存。
在一个可选的实施例中,上述方案中的在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存包括如下实现方式:在第一使用率大于等于第一阈值(如95%)的情况下,将第一数据从第一存储器转移至第二存储器中进行保存,目标数据包括第一数据,即在高速存储器的使用率过高的时候将数据转移至低速存储器中进行保存。
可选地,将第一数据从第一存储器转移至第二存储器中进行保存包括以下两种方式中的至少之一:
其一是按照第一间隔时间从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,第一间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,第一数据的第一间隔时间不短于第三数据的第一间隔时间,第三数据为第一存储器中除第一数据以外的数据,换言之,即将长时间未使用的数据转移到低速存储器中保存;
其二是按照第一使用次数从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,第一使用次数为数据在统计时间(可以为1分钟、10分钟、1小时等)内的使用次数,第一数据的第一使用次数不大于第三数据的第一使用次数,换言之,即将使用频率较低的数据转移到低速存储器中保存。
在上述实施例中,进行数据转移的目的是将高速存储器的使用率降低到合理的范围内,在将第一数据从第一存储器转移至第二存储器中进行保存之后,可以按照如下步骤1-步骤3所示的方式进行操作:
步骤1,获取第一存储器的第二使用率,第二使用率为进行数据转移后第一存储器中第二时间已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值,第二时间晚于获取第一使用率时的第一时间,这里的时间可以为时刻、也可以为时间周期(此时统计的使用率相当于这个时间周期内的平均使用率)。
步骤2,在第二使用率大于预期使用率的情况下,按照第二间隔时间从第一存储器中查找待转移的数据,或者按照第二使用次数从第一存储器中查找待转移的数据,直至第一存储器的使用率回到合理的使用范围内,第二间隔时间小于第一间隔时间,第二使用次数大于第一使用次数。
步骤3,在第二使用率小于等于预期使用率的情况下,不用调整间隔时间或者使用次数。
上述实施例中的将第一数据从第一存储器转移至第二存储器中进行保存可以通过如下步骤1-步骤2实现:
步骤1,将第一数据从第一存储器内第一键值对中键值对应的第一存储地址转移至第二存储器中进行保存,所有数据都是采用键值对的形式进行存储的,第一键值对是与第一数据匹配的键值对。
步骤2,将第一键值对中关键字的标识设置为第一标识(如可以用“0”表示存储在第一存储器、用“1”表示存储在第二存储器),并将第一键值对中键值对应的存储地址由第一存储地址替换为第二存储地址,第一标识用于表示第一数据存储在第二存储器中,第二存储地址为第一数据在第二存储器中的存储地址。
在另一个可选的实施例中,上述方案中的在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存还包括如下实现方式:在第一使用率小于等于第二阈值(如85%)的情况下,将第二数据从第二存储器转移至第一存储器中进行保存,其中,目标数据包括第二数据,第二阈值小于第一阈值。
可选地,将第二数据从第二存储器转移至第一存储器中进行保存可以通过如下两种方式中的至少之一实现:
其一是按照第三间隔时间从第二存储器中查找第二数据,并将第二数据从第二存储器转移至第一存储器中进行保存,其中,第三间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,第二数据的第三间隔时间不长于第四数据的第三间隔时间,第四数据为第二存储器中除第二数据以外的数据,换言之,即将短时间内被使用过的数据转移到高速存储器中保存;
其二是按照第三使用次数从第二存储器中查找第二数据,并将第二数据从第二存储器转移至第一存储器中进行保存,第三使用次数为数据在统计时间内的使用次数,第二数据的第三使用次数不小于第四数据的第三使用次数,换言之,即将使用频率较高的数据转移到高速存储器中保存。
可选地,将第二数据从第二存储器转移至第一存储器中进行保存可以通过如下步骤1-步骤2实现:
步骤1,将第二数据从第二存储器内第二键值对中键值对应的第三存储地址转移至第一存储器中进行保存,第二键值对是与第二数据匹配的键值对。
步骤2,将第二键值对中关键字的标识设置为第二标识,并将第二键值对中键值对应的存储地址由第三存储地址替换为第四存储地址,第二标识用于表示第二数据存储在第一存储器中,第四存储地址为第二数据在第一存储器中的存储地址。
上述存储系统为具有多级存储器的存储系统,其中任意两级都可以采用上述技术方案实现,作为一种可选的实施例,下面以存储系统具有两级存储器为例进行说明,其中,第一存储器为内存、第二存储器为磁盘(如固态硬盘SSD)。参见图3:
步骤S302,将数据从内存迁移到磁盘。
用户所存储的数据开始时被存储在内存上,但是内存的使用达到一定的阈值后,触发Redis数据库中的数据由内存到磁盘的迁移。
将符合策略的关键字Key和键值Value标记,这里的策略主要采用与Redis适配的策略,利用该策略可以根据具体业务进行调整,第一种是首先淘汰最长时间未被使用的数据,第二种是淘汰一定时期内被访问次数最少的数据。
在完成标记后,将Value的值进行序列化,并加入到异步传输的集合中,后通知后台线程采用数据存储引擎RocksDB进行持久化。
这里的序列化可以采用Redis原生的RDB KEY VALUE序列化方式。数据源是Redis内存中键值对Key Value中的Value值,按照RocksDB中的存储方式“Key+Value”存储序列化值。Redis中存在6种数据结构类型,分别是string、list、hash、set、zsort、stream,在内存中不是序列化的,键值对中Key是stirng类型连续的内存值,不需要序列化,Redis在全量持久化数据的时候会将各种数据类型进行相应的存储,这就涉及到了内存类型序列化。Redis将序列化后的vlaue通过Key Value类型的存储引擎RocksDB的API将Key对应的键值存储到磁盘。
持久化完成后返回持久化结果并将原始标记的Key的标记值和Value的robj(一种基础数据结构)的ptr(是真实指向Value内容内存的指针)指向的内存释放,每次Value指针ptr指向的数据结构序列化结落到磁盘后就会释放ptr指向对的内存从而减少内存占用;然后从异步传输的集合中删除Key,自此完成由冷变热的数据交换。
持久化后只是将Value的值所占用的内存释放掉,不会释放Key对应的内存,Key不包含在robj中,Key是在Redis数据库的索引中的,不会释放,一直常驻内存,由于Key是找到Value的索引,删除后就没法索引相应的数据值。
步骤S304,用户访问磁盘中的冷数据。
当用户访问到Redis中标记的冷数的Key时,看到Value对应的type标记为在磁盘中,那么采用RocksDB的用于访问数据的API接口直接访问磁盘的读写端口IO,获取到该Value的值,然后返回给用户。
步骤S306,将数据从磁盘回迁到内存。
由于Redis中存在多种策略标记,那么在某个冷Key被访问的次数或者时间达到预先设定的阈值时,触发Redis的将磁盘数据迁移到内存上的策略。向后台线程发起请求,并加入到迁移状态的集合中,后台线程读取磁盘数据并进行反序列化,将结果返回给Redis主线程,主线程接收到后替换Value的值。
在由内存到磁盘和由磁盘到内存的策略中采用动态策略,是因为内存的吃紧,在每轮的Key值过滤过程中,假如没有达到预期的Key值,那么下一轮的交换会相应的动态策略提升一个阈值等级,加速查找到对应的Key,从而节省遍历Key的时间成本,从而提高响应速度。
采用上述技术方案,由于采用了与Redis匹配的策略去淘汰键值,而Redis中存储的键值对在每次轮询淘汰的过程中,有可能长时间没有出现淘汰的键值,但是内存使用一直不下降,这就会导致内存使用满了,所以合理采用动态调整的访问次数或者访问时间,从而加快将内存值转移到磁盘,可以减少内存使用过量导致的拒绝写命令执行问题;同步模型的访问冷数,实现了和原始Redis的结果,先来先服务;采用阈值策略和动态变换策略,加快了释放内存和load内存的时间。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述数据的存储方法的数据的存储装置。图4是根据本申请实施例的一种可选的数据的存储装置的示意图,如图4所示,该装置可以包括:
获取单元401,用于获取第一存储器的第一使用率,其中,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值;
转存单元403,用于在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,其中,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度。
需要说明的是,该实施例中的获取单元401,可以用于执行本申请实施例中的步骤S202,该实施例中的转存单元403可以用于执行本申请实施例中的步骤S204。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,考虑到相同容量的存储器,单位存储空间的价格与传输速度成正比,故而本申请的存储系统包括速度递减的存储器,而不是相同容量的高速存储器,既保证了存储容量也降低了使用成本,在使用过程中,根据高速存储器的使用率进行数据迁移,可以解决相关技术中数据存储实现方案的成本较高的技术问题,进而达到降低成本的技术效果。
可选地,转存单元包括:第一转存模块,用于在第一使用率大于等于第一阈值的情况下,将第一数据从第一存储器转移至第二存储器中进行保存,其中,目标数据包括第一数据;第二转存模块,用于在第一使用率小于等于第二阈值的情况下,将第二数据从第二存储器转移至第一存储器中进行保存,其中,目标数据包括第二数据,第二阈值小于第一阈值。
可选地,第一转存模块还用于:按照第一间隔时间从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,其中,第一间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,第一数据的第一间隔时间不短于第三数据的第一间隔时间,第三数据为第一存储器中除第一数据以外的数据;和/或,按照第一使用次数从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,其中,第一使用次数为数据在统计时间内的使用次数,第一数据的第一使用次数不大于第三数据的第一使用次数。
可选地,获取单元还可用于在将第一数据从第一存储器转移至第二存储器中进行保存之后,获取第一存储器的第二使用率,其中,第二使用率为第一存储器中第二时间已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值,第二时间晚于获取第一使用率时的第一时间;转存单元还可用于在第二使用率大于预期使用率的情况下,按照第二间隔时间从第一存储器中查找待转移的数据,或者按照第二使用次数从第一存储器中查找待转移的数据,其中,第二间隔时间小于第一间隔时间,第二使用次数大于第一使用次数。
可选地,第二转存模块还用于:按照第三间隔时间从第二存储器中查找第二数据,并将第二数据从第二存储器转移至第一存储器中进行保存,其中,第三间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,第二数据的第三间隔时间不长于第四数据的第三间隔时间,第四数据为第二存储器中除第二数据以外的数据;和/或,按照第三使用次数从第二存储器中查找第二数据,并将第二数据从第二存储器转移至第一存储器中进行保存,其中,第三使用次数为数据在统计时间内的使用次数,第二数据的第三使用次数不小于第四数据的第三使用次数。
可选地,第一转存模块还用于:将第一数据从第一存储器内第一键值对中键值对应的第一存储地址转移至第二存储器中进行保存,其中,第一键值对是与第一数据匹配的键值对;将第一键值对中关键字的标识设置为第一标识,并将第一键值对中键值对应的存储地址由第一存储地址替换为第二存储地址,其中,第一标识用于表示第一数据存储在第二存储器中,第二存储地址为第一数据在第二存储器中的存储地址。
可选地,第二转存模块还用于:将第二数据从第二存储器内第二键值对中键值对应的第三存储地址转移至第一存储器中进行保存,其中,第二键值对是与第二数据匹配的键值对;将第二键值对中关键字的标识设置为第二标识,并将第二键值对中键值对应的存储地址由第三存储地址替换为第四存储地址,其中,第二标识用于表示第二数据存储在第一存储器中,第四存储地址为第二数据在第一存储器中的存储地址。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述数据的存储方法的服务器或终端。
图5是根据本申请实施例的一种终端的结构框图,如图5所示,该终端可以包括:一个或多个(图5中仅示出一个)处理器501、存储器503、以及传输装置505,如图5所示,该终端还可以包括输入输出设备507。
其中,存储器503可用于存储软件程序以及模块,如本申请实施例中的数据的存储方法和装置对应的程序指令/模块,处理器501通过运行存储在存储器503内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据的存储方法。存储器503可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器503可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置505用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置505包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置505为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器503用于存储应用程序。
处理器501可以通过传输装置505调用存储器503存储的应用程序,以执行下述步骤:
获取第一存储器的第一使用率,其中,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值;
在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,其中,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度。
处理器501还用于执行下述步骤:
按照第一间隔时间从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,其中,第一间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,第一数据的第一间隔时间不短于第三数据的第一间隔时间,第三数据为第一存储器中除第一数据以外的数据;和/或,
按照第一使用次数从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,其中,第一使用次数为数据在统计时间内的使用次数,第一数据的第一使用次数不大于第三数据的第一使用次数。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图5所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图5其并不对上述电子装置的结构造成限定。例如,终端还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据的存储方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
获取第一存储器的第一使用率,其中,第一存储器为存储系统内的存储器,第一使用率为第一存储器中已经使用的数据存储空间与第一存储器中全部数据存储空间之间的比值;
在第一使用率满足目标条件的情况下,将目标数据从第一存储器和第二存储器中的一个存储器转移至第一存储器和第二存储器中的另一个存储器进行保存,其中,第二存储器为存储系统内的存储器,从第一存储器获取目标数据时的数据传输速度高于从第二存储器获取目标数据时的数据传输速度。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
按照第一间隔时间从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,其中,第一间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,第一数据的第一间隔时间不短于第三数据的第一间隔时间,第三数据为第一存储器中除第一数据以外的数据;和/或,
按照第一使用次数从第一存储器中查找第一数据,并将第一数据从第一存储器转移至第二存储器中进行保存,其中,第一使用次数为数据在统计时间内的使用次数,第一数据的第一使用次数不大于第三数据的第一使用次数。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种数据的存储方法,其特征在于,包括:
获取第一存储器的第一使用率,其中,所述第一存储器为存储系统内的存储器,所述第一使用率为所述第一存储器中已经使用的数据存储空间与所述第一存储器中全部数据存储空间之间的比值;
在所述第一使用率满足目标条件的情况下,将目标数据从所述第一存储器和第二存储器中的一个存储器转移至所述第一存储器和所述第二存储器中的另一个存储器进行保存,其中,所述第二存储器为所述存储系统内的存储器,从所述第一存储器获取所述目标数据时的数据传输速度高于从所述第二存储器获取所述目标数据时的数据传输速度。
2.根据权利要求1所述的方法,其特征在于,在所述第一使用率满足目标条件的情况下,将目标数据从所述第一存储器和第二存储器中的一个存储器转移至所述第一存储器和所述第二存储器中的另一个存储器进行保存包括:
在所述第一使用率大于等于第一阈值的情况下,将第一数据从所述第一存储器转移至所述第二存储器中进行保存,其中,所述目标数据包括所述第一数据;或,
在所述第一使用率小于等于第二阈值的情况下,将第二数据从所述第二存储器转移至所述第一存储器中进行保存,其中,所述目标数据包括所述第二数据,所述第二阈值小于所述第一阈值。
3.根据权利要求2所述的方法,其特征在于,将第一数据从所述第一存储器转移至所述第二存储器中进行保存包括:
按照第一间隔时间从所述第一存储器中查找所述第一数据,并将所述第一数据从所述第一存储器转移至所述第二存储器中进行保存,其中,所述第一间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,所述第一数据的第一间隔时间不短于第三数据的第一间隔时间,所述第三数据为所述第一存储器中除所述第一数据以外的数据;和/或,
按照第一使用次数从所述第一存储器中查找所述第一数据,并将所述第一数据从所述第一存储器转移至所述第二存储器中进行保存,其中,所述第一使用次数为数据在统计时间内的使用次数,所述第一数据的第一使用次数不大于所述第三数据的第一使用次数。
4.根据权利要求3所述的方法,其特征在于,在将第一数据从所述第一存储器转移至所述第二存储器中进行保存之后,所述方法还包括:
获取所述第一存储器的第二使用率,其中,所述第二使用率为所述第一存储器中第二时间已经使用的数据存储空间与所述第一存储器中全部数据存储空间之间的比值,所述第二时间晚于获取所述第一使用率时的第一时间;
在所述第二使用率大于预期使用率的情况下,按照第二间隔时间从所述第一存储器中查找待转移的数据,或者按照第二使用次数从所述第一存储器中查找待转移的数据,其中,所述预期使用率位于所述第一阈值和所述第二阈值之间,所述第二间隔时间小于所述第一间隔时间,所述第二使用次数大于所述第一使用次数。
5.根据权利要求2所述的方法,其特征在于,将第二数据从所述第二存储器转移至所述第一存储器中进行保存包括:
按照第三间隔时间从所述第二存储器中查找所述第二数据,并将所述第二数据从所述第二存储器转移至所述第一存储器中进行保存,其中,所述第三间隔时间为数据最近一次被使用的时间与当前时间之间的间隔时间,所述第二数据的第三间隔时间不长于第四数据的第三间隔时间,所述第四数据为所述第二存储器中除所述第二数据以外的数据;和/或,
按照第三使用次数从所述第二存储器中查找所述第二数据,并将所述第二数据从所述第二存储器转移至所述第一存储器中进行保存,其中,所述第三使用次数为数据在统计时间内的使用次数,所述第二数据的第三使用次数不小于所述第四数据的第三使用次数。
6.根据权利要求2所述的方法,其特征在于,将第一数据从所述第一存储器转移至所述第二存储器中进行保存包括:
将所述第一数据从所述第一存储器内第一键值对中键值对应的第一存储地址转移至所述第二存储器中进行保存,其中,所述第一键值对是与所述第一数据匹配的键值对;
将所述第一键值对中关键字的标识设置为第一标识,并将所述第一键值对中键值对应的存储地址由所述第一存储地址替换为第二存储地址,其中,所述第一标识用于表示所述第一数据存储在所述第二存储器中,所述第二存储地址为所述第一数据在所述第二存储器中的存储地址。
7.根据权利要求2所述的方法,其特征在于,将第二数据从所述第二存储器转移至所述第一存储器中进行保存包括:
将所述第二数据从所述第二存储器内第二键值对中键值对应的第三存储地址转移至所述第一存储器中进行保存,其中,所述第二键值对是与所述第二数据匹配的键值对;
将所述第二键值对中关键字的标识设置为第二标识,并将所述第二键值对中键值对应的存储地址由所述第三存储地址替换为第四存储地址,其中,所述第二标识用于表示所述第二数据存储在所述第一存储器中,所述第四存储地址为所述第二数据在所述第一存储器中的存储地址。
8.一种数据的存储装置,其特征在于,包括:
获取单元,用于获取第一存储器的第一使用率,其中,所述第一存储器为存储系统内的存储器,所述第一使用率为所述第一存储器中已经使用的数据存储空间与所述第一存储器中全部数据存储空间之间的比值;
转存单元,用于在所述第一使用率满足目标条件的情况下,将目标数据从所述第一存储器和第二存储器中的一个存储器转移至所述第一存储器和所述第二存储器中的另一个存储器进行保存,其中,所述第二存储器为所述存储系统内的存储器,从所述第一存储器获取所述目标数据时的数据传输速度高于从所述第二存储器获取所述目标数据时的数据传输速度。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010723811.XA CN111930305A (zh) | 2020-07-24 | 2020-07-24 | 数据的存储方法和装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010723811.XA CN111930305A (zh) | 2020-07-24 | 2020-07-24 | 数据的存储方法和装置、存储介质、电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111930305A true CN111930305A (zh) | 2020-11-13 |
Family
ID=73315494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010723811.XA Pending CN111930305A (zh) | 2020-07-24 | 2020-07-24 | 数据的存储方法和装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930305A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613938A (zh) * | 2020-12-11 | 2021-04-06 | 上海哔哩哔哩科技有限公司 | 模型训练方法、装置及计算机设备 |
CN114793193A (zh) * | 2022-04-22 | 2022-07-26 | 深圳市东晟数据有限公司 | 一种网络安全日志的快速关联分类及分级存储方法 |
CN116483740A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 内存数据的迁移方法、装置、存储介质及电子装置 |
-
2020
- 2020-07-24 CN CN202010723811.XA patent/CN111930305A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613938A (zh) * | 2020-12-11 | 2021-04-06 | 上海哔哩哔哩科技有限公司 | 模型训练方法、装置及计算机设备 |
CN114793193A (zh) * | 2022-04-22 | 2022-07-26 | 深圳市东晟数据有限公司 | 一种网络安全日志的快速关联分类及分级存储方法 |
CN116483740A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 内存数据的迁移方法、装置、存储介质及电子装置 |
CN116483740B (zh) * | 2023-06-21 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 内存数据的迁移方法、装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105205014B (zh) | 一种数据存储方法和装置 | |
CN111930305A (zh) | 数据的存储方法和装置、存储介质、电子装置 | |
CN109947668B (zh) | 存储数据的方法和装置 | |
US8639658B1 (en) | Cache management for file systems supporting shared blocks | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN109804359A (zh) | 用于将数据回写到存储设备的系统和方法 | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN110196759B (zh) | 分布式事务处理方法和装置、存储介质及电子装置 | |
CN109582246A (zh) | 基于矿机的数据访问方法、装置、系统及可读存储介质 | |
US20230359561A1 (en) | Method and apparatus for adjusting data storage and computer device | |
CN110688062A (zh) | 一种缓存空间的管理方法及装置 | |
CN108304142B (zh) | 一种数据管理方法和装置 | |
CN111857574A (zh) | 一种写请求数据压缩方法、系统、终端及存储介质 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN107423425B (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
CN112764948A (zh) | 数据发送方法、数据发送装置、计算机设备及存储介质 | |
CN111858612B (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
CN115617255A (zh) | 缓存文件的管理方法和管理装置 | |
CN110427394B (zh) | 数据操作方法及装置 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN109977074B (zh) | 一种基于hdfs的lob数据处理方法及装置 | |
CN110674086A (zh) | 数据合并方法、装置、电子设备及存储介质 | |
CN116028389A (zh) | 热点数据缓存方法、装置、设备及介质 | |
CN114896215A (zh) | 元数据的存储方法及装置 | |
CN111597129B (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 |