CN108984589A - 一种数据写入方法及服务器 - Google Patents
一种数据写入方法及服务器 Download PDFInfo
- Publication number
- CN108984589A CN108984589A CN201810532139.9A CN201810532139A CN108984589A CN 108984589 A CN108984589 A CN 108984589A CN 201810532139 A CN201810532139 A CN 201810532139A CN 108984589 A CN108984589 A CN 108984589A
- Authority
- CN
- China
- Prior art keywords
- data
- document storage
- distributed document
- storage database
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 238000011084 recovery Methods 0.000 claims description 55
- 238000013500 data storage Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据写入方法服务器及计算机可读存储介质,通过监测分布式文档存储数据库的至少一种性能指标,并在性能指标达到预设指标阈值时,启用Redis服务,将接收到的终端发送的数据写入Redis中。这样,服务器在分布式文档存储数据库能力不足时,即可通过Redis来写入数据,绕开了能力不足的分布式文档存储数据库,从而保障了服务器的写性能,保证了服务器侧的并发量,同时也保证了服务器可以及时对终端发送的数据进行相应的处理,将相应数据返回给终端,保证用户侧的应用的流畅。
Description
技术领域
本发明涉及终端技术领域,更具体地说,涉及一种数据写入方法及服务器。
背景技术
随着用户量的不断增大,应用程序的服务器侧大都使用了分布式文档存储数据库(MongoDB)来进行高并发数据的存储或中转。但是随着分布式文档存储数据库接收到的数据量的不断增大,受分布式文档存储数据库自身能力的影响,分布式文档存储数据库中可能存在数据无法及时从内存中回收等问题,这就导致了服务器写性能出现严重下降,影响服务器侧的并发量,同时也导致服务器无法及时处理用户的接口请求,从而造成用户侧的应用卡顿。
发明内容
本发明要解决的技术问题在于:随着分布式文档存储数据库接收到的数据量的不断增大,分布式文档存储数据库中可能存在数据无法及时从内存中回收等问题,这就导致了服务器写性能出现严重下降,影响服务器侧的并发量,同时也导致服务器无法及时处理用户的接口请求,从而造成用户侧的应用卡顿。针对该技术问题,本发明提供一种数据写入方法及服务器。
为解决上述技术问题,本发明提供一种数据写入方法,所述数据写入方法包括:
监测分布式文档存储数据库的至少一种性能指标;
在所述性能指标达到预设指标阈值时,启用Redis(重申)服务;
所述Redis服务包括:
接收终端发送的数据;
将接收到的所述数据写入Redis中。
可选的,所述性能指标包括数据写入性能、数据回收率中的至少一种。
可选的,所述分布式文档存储数据库中被监测性能指标至少有两种;
所述在所述性能指标达到预设指标阈值时,启用Redis服务包括:在任意一个性能指标达到该性能指标对应的预设指标阈值时,启用Redis服务。
可选的,在启用Redis服务之后,还包括:
确定所述分布式文档存储数据库中的非热点数据;
将所述非热点数据压缩;
将压缩后的所述非热点数据写入磁盘中。
可选的,所述确定所述分布式文档存储数据库中的非热点数据包括:通过以下方式中的至少一种确定所述分布式文档存储数据库中的非热点数据:
方式一:检测所述分布式文档存储数据库中的各数据的读取次数;将读取次数小于第一读取次数阈值的数据确定为非热点数据;
方式二:检测所述分布式文档存储数据库中的各数据存储区域对应的数据总读取次数;将所述数据总读取次数小于第二读取次数阈值的数据存储区域中的所有数据确定为非热点数据;
方式三:检测所述分布式文档存储数据库中的各类型数据对应的数据总读取次数;将所述数据总读取次数小于第三读取次数阈值的各类型数据确定为非热点数据。
可选的,所述第一读取次数阈值为所述分布式文档存储数据库中的各数据的读取次数的平均值;
所述第二读取次数阈值为所述分布式文档存储数据库中各数据存储区域对应的数据总读取次数的平均值;
所述第三读取次数阈值为所述分布式文档存储数据库中各类型数据对应的数据总读取次数的平均值。
可选的,在所述将压缩后的所述非热点数据写入磁盘中之后,还包括:
将所述Redis中的数据写入分布式文档存储数据库中。
可选的,所述将压缩后的所述非热点数据写入磁盘中包括:
若所述磁盘的空余存储空间小于压缩后的所述非热点数据的数据大小或所述磁盘的空余存储空间小于预设的空余空间阈值,自动申请磁盘服务;所述磁盘服务包括为所述磁盘分配更大的存储空间;
将压缩后的所述非热点数据压缩写入申请了所述磁盘服务后的所述磁盘中。
可选的,在所述将所述非热点数据压缩时,还包括:建立所述非热点数据的索引;
在所述将压缩后的所述非热点数据写入磁盘中之后,还包括:
在接收到对所述非热点数据的读取请求时,根据所述非热点数据的索引在磁盘中找到压缩后的非热点数据;
将所述压缩后的非热点数据解压,返回所述非热点数据中所述读取请求所请求的数据。
进一步地,本发明还提供了一种服务器,所述服务器包括处理器、存储器以及通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现上述任一种数据写入方法的步骤。
进一步地,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的数据写入方法的步骤。
有益效果
本发明提供一种数据写入方法服务器及计算机可读存储介质,针对目前随着分布式文档存储数据库接收到的数据量的不断增大,分布式文档存储数据库中可能存在数据无法及时从内存中回收等情况,导致了服务器写性能出现严重下降,影响服务器侧的并发量,同时也导致服务器无法及时处理用户的接口请求,从而造成用户侧的应用卡顿的问题,通过监测分布式文档存储数据库的至少一种性能指标,并在性能指标达到预设指标阈值时,启用Redis服务,将接收到的终端发送的数据写入Redis中。这样,服务器在分布式文档存储数据库能力不足时,即可通过Redis来写入数据,绕开了能力不足的分布式文档存储数据库,从而保障了服务器的写性能,保证了服务器侧的并发量,同时也保证了服务器可以及时对终端发送的数据进行相应的处理,将相应数据返回给终端,保证用户侧的应用的流畅。此外,服务器在分布式文档存储数据库能力不足时,通过Redis来写入数据,也给分布式文档存储数据库留出来恢复能力的时间。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为实现本发明各个实施例的一个可选的服务器的结构示意图;
图2为本发明第一实施例提供的一种数据写入方法基本流程图;
图3为本发明第一实施例提供的一种Redis服务的流程图;
图4为本发明第一实施例提供的一种终端和服务器之间的数据交互示意图;
图5为本发明第一实施例提供的又一种终端和服务器之间的数据交互示意图;
图6为本发明第一实施例提供的一种非热点数据处理流程图;
图7为本发明第二实施例提供的一种数据写入方法的流程示意图;
图8为本发明第三实施例提供的一种服务器结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:输入输出(IO)总线11、处理器12、存储器13、内存14和通信装置15。其中,
输入输出(IO)总线11分别与自身所属的服务器的其它部件(处理器12、存储器13、内存14和通信装置15)连接,并且为其它部件提供传送线路。
处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算和确认等操作。其中,处理器12可以是中央处理器(CPU)。
通信装置15,通常包括一个或多个组件,其允许自身所属的服务器与无线通信***或网络之间的无线电通信。
存储器13存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器12执行本文描述的功能的指令(即软件执行功能)。
基于上述服务器硬件结构,提出本发明方法各个实施例。
第一实施例
为解决目前随着分布式文档存储数据库接收到的数据量的不断增大,分布式文档存储数据库中可能存在数据无法及时从内存中回收等情况,导致了服务器写性能出现严重下降,影响服务器侧的并发量,同时也导致服务器无法及时处理用户的接口请求,从而造成用户侧的应用卡顿的问题,本实施例提供了一种数据写入方法。参见图2,图2为本实施例提供的数据写入方法基本流程图,包括:
S201:监测分布式文档存储数据库的至少一种性能指标;
在本实施例中,性能指标包括数据写入性能、数据回收率中的至少一种。本实施例中数据写入性能可以通过分布式文档存储数据库的数据写入速度、数据当前可写入量等来进行体现。相应的,数据回收率可以通过分布式文档存储数据库的数据回收时长、数据回收量等来进行体现。
需要说明的是,在分布式文档存储数据库中,数据回收是指的将数据从内存中删除。在从内存中删除数据时,服务器会对数据进行标记,并在一定时间后将标记了的数据删除。因此,本实施例中所述的数据回收时长是指的数据从标记到删除的这一时长,本实施例中所述的数据回收量是指的在一定时长段内从内存中删除的数据量。
应当理解的是,服务器监测分布式文档存储数据库的性能指标时,被监测的性能指标的类型是预先确定好的。服务器可以仅检测分布式文档存储数据库的某一种性能指标,也可以检测分布式文档存储数据库的某几种性能指标。例如,服务器可以仅监测数据回收率,也可以同时监测数据写入性能和数据回收率。具体监测哪一种或哪几种性能指标可以由相关管理人员预先选定。
还应当理解的是,在服务器监测的性能指标包括数据写入性能时,服务器实际检测的是数据写入速度和/或数据当前可写入量等体现数据写入性能的具体指标。例如,服务器在监测数据写入性能时,实际监测的可以是分布式文档存储数据库数据的写入速度和数据当前可写入量。
相应的,在服务器监测的性能指标包括数据回收率时,服务器实际检测的是数据回收时长和/或数据回收量等体现数据回收率的具体指标。例如,服务器在监测数据写入性能时,实际监测的可以是分布式文档存储数据库对应的数据回收时长和/或数据回收量。
S202:在性能指标达到预设指标阈值时,启用Redis服务。
应当理解的是,本实施例中的指标阈值可以由相关管理人员根据实际经验或者大量测试来预先设定的。本实施例中预先设定的指标阈值可以是各性能指标的临界值,即超过阈值之后即会导致分布式文档存储数据库的能力快速下降,影响用户体验。
在本实施例中,预先设定的指标阈值应当与选定要进行监测的性能指标相对应的。例如,在要进行监测的性能指标包括数据写入性能时,对应的预先设定的指标阈值应当包括数据写入性能阈值。在本实施例中,由于数据写入性能是通过分布式文档存储数据库的数据写入速度、数据当前可写入量等来进行体现的,因此数据写入性能阈值应当为对应体现数据写入性能的具体指标的阈值,该阈值可以为一个也可以为多个,数据写入性能阈值的阈值个数由实际监测的体现数据写入性能的具体指标的个数来确定。例如,服务器监测数据写入性能是通过监测数据当前可写入量来实现的,那么对应设置的数据写入性能阈值即为数据可写入量阈值,仅有一个。又例如,服务器监测数据写入性能是通过监测数据写入速度和数据当前可写入量来实现的,那么对应设置的数据写入性能阈值即为数据写入速度阈值和数据可写入量阈值,有两个。
相应的,在本实施例中,由于数据回收率是通过分布式文档存储数据库的数据回收时长、数据回收量等来进行体现的,因此数据回收率阈值应当为对应体现数据回收率的具体指标的阈值,该阈值可以为一个也可以为多个,数据回收率阈值的阈值个数由实际监测的体现数据回收率的具体指标的个数来确定。例如,服务器监测数据回收率是通过监测数据回收时长来实现的,那么对应设置的数据回收率阈值即为数据回收时长阈值,仅有一个。又例如,服务器监测数据回收率是通过监测数据回收时长和数据回收量来实现的,那么对应设置的数据回收率阈值即为数据回收时长阈值和数据回收量阈值,有两个。
应当理解的是,在本实施例的一种具体实施方式中,在一个性能指标对应的指标阈值存在两种或两种以上时,在该性能指标的任意一种具体指标达到该具体指标对应的指标阈值时,即判定该性能指标达到预设指标阈值,启用重申Redis服务。
应当理解的是,本实施例中对于不同的具体指标而言,某些具体指标可能属于正指标,而某些具体指标可能属于负指标。对于正指标,其在大于等于对应的指标阈值时即判定该指标达到对应的指标阈值,启用重申Redis服务,例如数据回收时长即属于正指标。而对于负指标,其在小于等于对应的指标阈值时即判定该指标达到对应的指标阈值,启用重申Redis服务,例如数据写入速度、数据当前可写入量、数据回收量即属于负指标。
在本实施例中,若监测的是分布式文档存储数据库的两种或两种以上的性能指标,则在本实施例的一种具体实施方式中,可以在任意一个性能指标达到该性能指标对应的预设指标阈值时,就启用Redis服务。当然,在本实施例的一种具体实施方式中,也可以设定在所有性能指标均达到各性能指标对应的预设指标阈值时,才启用Redis服务;或者设定在有N(N大于等于2)个性能指标都达到各性能指标对应的预设指标阈值时,就启用Redis服务。
在本实施例中,参见图3所示,Redis服务包括:
S301:接收终端发送的数据;
需要说明的是,本实施例中终端发送的数据可以包含有用户请求以及相关的用户偏好或行为信息。所述用户请求是指终端发送来的要求服务器返回某些数据的请求信息数据,例如可以是应用开启请求、购买请求、页面进入请求等。本实施例中,用户偏好或行为信息是指的可以体现用户的偏好或行为的信息,例如用户浏览的商品信息、用户打开的游戏信息、用户浏览的新闻信息等。事实上,用户偏好或行为信息可以被用户请求携带。例如终端发送一个商品购买请求,则该请求中往往会携带有用户所要购买的商品信息。
应当理解的是,在未启用Redis服务时,服务器也会接收终端发送的数据,但那时服务器是将终端发送的数据直接写入分布式文档存储数据库中。例如参见图4所示的终端和服务器之间的数据交互示意图,在未启用Redis服务时,终端41是和服务器42的分布式文档存储数据库进行数据交互。参见图5所示的终端和服务器之间的数据交互示意图,在启用Redis服务时,终端51是和服务器52的Redis进行数据交互。
S302:将接收到的数据写入Redis中。
需要说明的是,Redis是一个高性能的key-value数据库。它支持存储的value类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中。
在本实施例中,在启用Redis服务后,服务器会自动拦截来自用户接口所调用的数据,并将之写入Redis中。
在本实施例中,在启用Redis服务之后,可以参见图6所示,还包括:
S601:确定分布式文档存储数据库中的非热点数据;
在本实施例中,可以通过以下方式中的至少一种来确定分布式文档存储数据库中的非热点数据:
方式一:检测分布式文档存储数据库中的各数据的读取次数;将读取次数小于第一读取次数阈值的数据确定为非热点数据。
在本实施例中,第一读取次数阈值可以是由相关管理人员根据实际经验或者大量测试来预先设定的;但也可以是动态计算得到的。
在本实施例的一种具体实施方式中,第一读取次数阈值为分布式文档存储数据库中的各数据的读取次数的平均值。此时即可通过数据的实际读取次数和各数据的读取次数的平均值来确定出哪些数据为非热点数据。例如,设分布式文档存储数据库中共有M个数据,对应的总读取次数为m,则第一读取次数阈值为(m/M),服务器可以将所有读取次数小于(m/M)的数据确定为非热点数据。
在本实施例中,特别的,对于某些新加入的数据而言,可能其由于时间关系导致的读取次数小于第一读取次数阈值,因此可以设置对于写入时长不超过K的数据,先不进行非热点数据的确定。本实施例中K可以由相关管理人员根据实际经验或者大量测试来预先设定。
方式二:检测分布式文档存储数据库中的各数据存储区域对应的数据总读取次数;将数据总读取次数小于第二读取次数阈值的数据存储区域中的所有数据确定为非热点数据。
在本实施例中,第二读取次数阈值可以是由相关管理人员根据实际经验或者大量测试来预先设定的;但也可以是动态计算得到的。
需要说明的是,分布式文档存储数据库(MongoDB)是一种基于分布式文件存储的数据库***,其***架构为分布式集群架构,数据分散存储在Mongodb集群的集群节点中。在本实施例中,可以将每一个集群节点作为一个数据存储区域,也可以将多个集群节点作为一个数据存储区域。
在本实施例的一种具体实施方式中,第二读取次数阈值为分布式文档存储数据库中各数据存储区域对应的数据总读取次数的平均值。此时即可通过数据存储区域对应的实际数据总读取次数和各数据存储区域对应的数据总读取次数的平均值来确定出哪些数据为非热点数据。例如,设分布式文档存储数据库中共有P个数据存储区域,P个数据存储区域的总读取次数为p(即分布式文档存储数据库中所有数据的读取次数之和为p),则第二读取次数阈值为(p/P),服务器可以将所有读取次数小于(p/P)的数据存储区域中的所有数据确定为非热点数据。
应当理解的是,一个数据存储区域对应的数据总读取次数即为:该数据存储区域中的各数据的读取次数之和。
方式三:检测分布式文档存储数据库中的各类型数据对应的数据总读取次数;将数据总读取次数小于第三读取次数阈值的各类型数据确定为非热点数据。
在本实施例中,第三读取次数阈值可以是由相关管理人员根据实际经验或者大量测试来预先设定的;但也可以是动态计算得到的。
需要说明的是,在分布式文档存储数据库中,其存储的数据往往有很多种类型,例如游戏数据、网页数据、***数据等。
在本实施例的一种具体实施方式中,第三读取次数阈值为分布式文档存储数据库中各类型数据对应的数据总读取次数的平均值。此时即可通过各类型数据对应的实际数据总读取次数和各各类型数据对应的数据总读取次数的平均值来确定出哪些数据为非热点数据。例如,设分布式文档存储数据库中共有Q种数据,这Q种数据的总读取次数为q(即分布式文档存储数据库中所有数据的读取次数之和为q),则第三读取次数阈值为(q/Q),服务器可以将所有读取次数小于(q/Q)的数据类型的所有数据确定为非热点数据,比如游戏数据的总读取次数小于了(q/Q),则服务器将所有游戏数据全部确定为非热点数据。
S602:将非热点数据压缩;
在本实施例中,在每一次检测之后,可以将检测到的所有的非热点数据压缩成为一个压缩文件,但也可以压缩成为多个压缩文件。例如,在根据方式二确定出非热点数据后,可以将每一个数据存储区域的非热点数据压缩成一个压缩文件;比如确定数据存储区域1中的数据为非热点数据、确定数据存储区域2中的数据为非热点数据,则将数据存储区域1中的数据压缩成一个压缩文件,将数据存储区域2中的数据压缩成一个压缩文件。又例如,在根据方式三确定出非热点数据后,可以将每一个类型的非热点数据压缩成一个压缩文件;比如确定游戏数据为非热点数据、确定网页数据为非热点数据,则将游戏数据压缩成一个压缩文件,将网页数据压缩成一个压缩文件。
应当理解的是,对于服务器而言,磁盘服务的成本较低,因此在非热点数据的转移过程中,如果分布式文档存储数据库对应的磁盘空间不足,则可以申请更大的磁盘服务来保证非热点数据转移的顺利。
具体的,可以设置若磁盘的空余存储空间小于压缩后的非热点数据的数据大小,服务器就自动申请磁盘服务;或者设置在磁盘的空余存储空间小于预设的空余空间阈值,服务器就自动申请磁盘服务。应当理解的是,本实施例中所述磁盘服务是指为磁盘分配更大的存储空间。
在申请了磁盘服务之后,磁盘的空余存储空间即可满足非热点数据转移的需要,服务器即可将压缩后的非热点数据压缩写入申请了磁盘服务后的磁盘中。
S603:将压缩后的非热点数据写入磁盘中。
在本实施例中,为了防止之后用户对非热点数据请求访问时,服务器找不到对应的数据,因此可以在对非热点数据进行压缩时,就建立非热点数据的索引。
在本实施例中,非热点数据的索引可以是非热点数据所在压缩文件所对应的索引。例如,非热点数据1-非热点数据10000被压缩成了一个压缩文件,服务器可以为这一个压缩文件建立一个索引,这样在用户请求访问非热点数据1-非热点数据10000中的任意一个时,即可通过该索引找到这一个压缩文件,进而将该压缩文件解压得到用户想要访问的那一个数据。应当理解的是,为压缩文件建立的索引应当可以对应到压缩文件中的非热点数据。例如,服务器可以建立一个压缩记录表,在表中记录将非热点数据1-非热点数据10000压缩为了压缩文件A(A即可视为压缩文件的索引)。
在本实施例中,非热点数据的索引也可以是非热点数据所对应的索引。即一个非热点数据对应一个索引,该索引可以指向非热点数据的压缩文件或者非热点数据的压缩文件在磁盘中的存储位置。
在本实施例中,在建立了非热点数据的索引后,若接收到对非热点数据的读取请求,则可以根据非热点数据的索引在磁盘中找到压缩后的非热点数据;进而将压缩后的非热点数据解压,返回非热点数据中读取请求所请求的数据。
在本实施例中,将压缩后的非热点数据写入磁盘中之后,分布式文档存储数据库即空余除了大量的存储空间,此时可以将之前写入Redis中的数据写入分布式文档存储数据库中。同时,服务器可以自动删除Redis中已写入分布式文档存储数据库中的数据。
应当理解的是,在将压缩后的非热点数据写入磁盘中之后,分布式文档存储数据库即空余除了大量的存储空间,此时分布式文档存储数据库的能力较将压缩后的非热点数据写入磁盘中之前会有一定程度的提升,此时若监测的分布式文档存储数据库的性能指标未达到预设指标阈值了,即分布式文档存储数据库的能力足以满足服务器对数据的处理要求了,服务器可以自动释放Redis服务,将接收到的终端数据直接写入分布式文档存储数据库中,以降低***成本。
应当理解的是,本实施例提供的数据写入方法中的各个步骤可以由如图1所示的服务器来独立实现。具体的,可以通过在存储器13内存储实现上述各个步骤的一个或多个程序,由处理器12执行该程序,从而实现上述数据写入方法的各个步骤。
本实施例提供的数据写入方法,通过监测分布式文档存储数据库的至少一种性能指标,并在性能指标达到预设指标阈值时,启用Redis服务,将接收到的终端发送的数据写入Redis中。这样,服务器在分布式文档存储数据库能力不足时,即可通过Redis来写入数据,绕开了能力不足的分布式文档存储数据库,从而保障了服务器的写性能,保证了服务器侧的并发量,同时也保证了服务器可以及时对终端发送的数据进行相应的处理,将相应数据返回给终端,保证用户侧的应用的流畅。
此外,服务器在通过Redis来写入数据时,可以将分布式文档存储数据库中的非热点数据压缩存储至磁盘中,从而在一定程度上恢复分布式文档存储数据库的能力,并在分布式文档存储数据库能力恢复至满足服务器对数据处理的要求后自动关闭Redis服务,继续采用分布式文档存储数据库来写入数据,保证了服务器对数据处理的成本。
此外,服务器在压缩非热点数据时,会为非热点数据建立索引,从而保证了用户即使是想要访问非热点数据,服务器也可以快速找到用户想要访问非热点数据并返回给用户。
第二实施例
本实施例是在第一实施例的基础上,以一种较具体的数据写入过程为例,对本发明作进一步的示例说明。
参见图7所示,图7为本实施例所提供的数据写入方法的流程示意图,包括:
S701:监测分布式文档存储数据库的数据写入性能和数据回收率;
本实施例中数据写入性能通过分布式文档存储数据库的数据写入速度、数据当前可写入量来进行体现。数据回收率通过分布式文档存储数据库的数据回收时长、数据回收量来进行体现。服务器在进行监测时实质是监测的分布式文档存储数据库的数据写入速度、数据当前可写入量、数据回收时长、数据回收量。
需要说明的是,在分布式文档存储数据库中,数据回收是指的将数据从内存中删除。在从内存中删除数据时,服务器会对数据进行标记,并在一定时间后将标记了的数据删除。因此,本实施例中所述的数据回收时长是指的数据从标记到删除的这一时长,本实施例中所述的数据回收量是指的在一定时长段内从内存中删除的数据量。
S702:在数据写入性能达到预设数据写入性能阈值或数据回收率达到预设数据回收率阈值时,启用Redis服务从而将接收到的终端发送的数据写入Redis中;
在本实施例中,分布式文档存储数据库的数据写入速度和数据当前可写入量中的任意一个达到了对应的指标阈值时,即判定数据写入性能达到预设数据写入性能阈值。同理,分布式文档存储数据库的数据回收时长和数据回收量中的任意一个达到了其对应的指标阈值时,即判定数据回收率达到预设数据回收率阈值。即在本实施例中,分布式文档存储数据库的数据写入速度、数据当前可写入量、数据回收时长、数据回收量中的任意一个达到了其对应的指标阈值时,服务器即启用Redis服务从而将接收到的终端发送的数据写入Redis中,以保证并发量和对终端的快速响应。
应当理解的是,本实施例中对于不同的具体指标而言,某些具体指标可能属于正指标,而某些具体指标可能属于负指标。对于正指标,其在大于等于对应的指标阈值时即判定该指标达到对应的指标阈值,启用重申Redis服务,例如数据回收时长即属于正指标。而对于负指标,其在小于等于对应的指标阈值时即判定该指标达到对应的指标阈值,启用重申Redis服务,例如数据写入速度、数据当前可写入量、数据回收量即属于负指标。
在本实施例中,各个指标阈值可以是各性能指标的临界值,即超过阈值之后即会导致分布式文档存储数据库的能力快速下降,影响用户体验。
S703:扫描分布式文档存储数据库中的非热点数据;
在本实施例中,非热点的判断标准是一个数据存储区域中的数据在一定时间周期内被读取到的次数。服务器根据分布式文档存储数据库各数据存储区域中的数据的所有读取次数,找到在时间周期内读取次数低于分布式文档存储数据库各数据存储区域的读取次数平均值的数据存储区域,将这些数据存储区域中的所有数据全部确定为非热点数据。
S704:将非热点数据压缩后写入磁盘中;
本实施例中,在压缩时为这非热点数据建立索引,以保证用户需要访问这部分非热点数据时,服务器能根据所需访问的非热点数据的索引快速找到其对应的压缩文件在磁盘中的位置,进而将压缩文件解压找到该索引对应的非热点数据,从而快速将用户需要访问的非热点数据返回给用户。这样,服务器既能保证用户访问到分布式文档存储数据库的所有数据,又能充分提高整个***的运转效率和空间使用率。
此外,对于服务器而言,磁盘服务的成本较低,所以在非热点数据转移的过程中,如果服务器磁盘空间不足,服务器可以自动申请更大的磁盘服务。
S705:将Redis中的数据写入分布式文档存储数据库中;
在将将非热点数据压缩后写入磁盘中后,分布式文档存储数据库即空余除了大量的存储空间,此时即可将Redis中的数据写入分布式文档存储数据库中,并释放Redis中写入的数据,保证Redis的性能。
S706:释放Redis服务,将接收到的终端发送的数据写入分布式文档存储数据库中。
在将压缩后的非热点数据写入磁盘中之后,分布式文档存储数据库即空余除了大量的存储空间,此时分布式文档存储数据库的能力较将压缩后的非热点数据写入磁盘中之前会有一定程度的提升,此时若监测的分布式文档存储数据库的性能指标未达到预设指标阈值了,即分布式文档存储数据库的能力足以满足服务器对数据的处理要求了,服务器可以自动释放Redis服务,将接收到的终端数据直接写入分布式文档存储数据库中,以降低***成本。
本实施例提供了一种数据写入方法,通过监测分布式文档存储数据库的性能指标,并在性能指标达到预设指标阈值时,启用Redis服务,将接收到的终端发送的数据写入Redis中。这样,服务器在分布式文档存储数据库能力不足时,即可通过Redis来写入数据,绕开了能力不足的分布式文档存储数据库,从而保障了服务器的写性能,保证了服务器侧的并发量,同时也保证了服务器可以及时对终端发送的数据进行相应的处理,将相应数据返回给终端,保证用户侧的应用的流畅。
此外,服务器在通过Redis来写入数据时,可以将分布式文档存储数据库中的非热点数据压缩存储至磁盘中,从而在一定程度上恢复分布式文档存储数据库的能力,并在分布式文档存储数据库能力恢复至满足服务器对数据处理的要求后自动关闭Redis服务,继续采用分布式文档存储数据库来写入数据,保证了服务器对数据处理的成本。
此外,服务器在压缩非热点数据时,会为非热点数据建立索引,从而使得服务器既能保证用户访问到分布式文档存储数据库的所有数据,又能充分提高整个***的运转效率和空间使用率。
第三实施例
本实施例提供了一种服务器,参见图8所示,其包括处理器81、存储器82以及通信总线83。其中:
通信总线83用于实现处理器81和存储器82之间的连接通信。
处理器81用于执行存储器82中存储的一个或多个程序,以实现上述第一实施例和/或第二实施例所述的数据写入方法的各步骤。
同时,本实施例还提供一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、CF卡、SD卡、MMC卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述第一实施例和/或第二实施例所述的数据写入方法的各步骤。在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种数据写入方法,其特征在于,所述数据写入方法包括:
监测分布式文档存储数据库的至少一种性能指标;
在所述性能指标达到预设指标阈值时,启用重申(Redis)服务;
所述Redis服务包括:
接收终端发送的数据;
将接收到的所述数据写入Redis中。
2.如权利要求1所述的数据写入方法,其特征在于,所述性能指标包括数据写入性能、数据回收率中的至少一种。
3.如权利要求1所述的数据写入方法,其特征在于,所述分布式文档存储数据库中被监测性能指标至少有两种;
所述在所述性能指标达到预设指标阈值时,启用Redis服务包括:在任意一个性能指标达到该性能指标对应的预设指标阈值时,启用Redis服务。
4.如权利要求1-3任一项所述的数据写入方法,其特征在于,在启用Redis服务之后,还包括:
确定所述分布式文档存储数据库中的非热点数据;
将所述非热点数据压缩;
将压缩后的所述非热点数据写入磁盘中。
5.如权利要求4所述的数据写入方法,其特征在于,所述确定所述分布式文档存储数据库中的非热点数据包括:通过以下方式中的至少一种确定所述分布式文档存储数据库中的非热点数据:
方式一:检测所述分布式文档存储数据库中的各数据的读取次数;将读取次数小于第一读取次数阈值的数据确定为非热点数据;
方式二:检测所述分布式文档存储数据库中的各数据存储区域对应的数据总读取次数;将所述数据总读取次数小于第二读取次数阈值的数据存储区域中的所有数据确定为非热点数据;
方式三:检测所述分布式文档存储数据库中的各类型数据对应的数据总读取次数;将所述数据总读取次数小于第三读取次数阈值的各类型数据确定为非热点数据。
6.如权利要求5所述的数据写入方法,其特征在于,所述第一读取次数阈值为所述分布式文档存储数据库中的各数据的读取次数的平均值;
所述第二读取次数阈值为所述分布式文档存储数据库中各数据存储区域对应的数据总读取次数的平均值;
所述第三读取次数阈值为所述分布式文档存储数据库中各类型数据对应的数据总读取次数的平均值。
7.如权利要求4所述的数据写入方法,其特征在于,在所述将压缩后的所述非热点数据写入磁盘中之后,还包括:
将所述Redis中的数据写入分布式文档存储数据库中。
8.如权利要求4所述的数据写入方法,其特征在于,所述将压缩后的所述非热点数据写入磁盘中包括:
若所述磁盘的空余存储空间小于压缩后的所述非热点数据的数据大小或所述磁盘的空余存储空间小于预设的空余空间阈值,自动申请磁盘服务;所述磁盘服务包括为所述磁盘分配更大的存储空间;
将压缩后的所述非热点数据压缩写入申请了所述磁盘服务后的所述磁盘中。
9.如权利要求4所述的数据写入方法,其特征在于,在所述将所述非热点数据压缩时,还包括:建立所述非热点数据的索引;
在所述将压缩后的所述非热点数据写入磁盘中之后,还包括:
在接收到对所述非热点数据的读取请求时,根据所述非热点数据的索引在磁盘中找到压缩后的非热点数据;
将所述压缩后的非热点数据解压,返回所述非热点数据中所述读取请求所请求的数据。
10.一种服务器,其特征在于,所述服务器包括处理器、存储器以及通信总线;
所述通信总线用于实现所述处理器和存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现如权利要求1-9任一项所述的数据写入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810532139.9A CN108984589A (zh) | 2018-05-29 | 2018-05-29 | 一种数据写入方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810532139.9A CN108984589A (zh) | 2018-05-29 | 2018-05-29 | 一种数据写入方法及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108984589A true CN108984589A (zh) | 2018-12-11 |
Family
ID=64542748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810532139.9A Pending CN108984589A (zh) | 2018-05-29 | 2018-05-29 | 一种数据写入方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108984589A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007878A (zh) * | 2019-04-17 | 2019-07-12 | Oppo广东移动通信有限公司 | 存储卡处理方法、存储卡处理装置及移动终端 |
CN112351111A (zh) * | 2020-12-30 | 2021-02-09 | 常州微亿智造科技有限公司 | 一种工业质检文件上传服务器端近实时进度监控方法 |
CN114356225A (zh) * | 2021-12-17 | 2022-04-15 | 得一微电子股份有限公司 | 存储器的数据存储方法、装置、终端设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617007A (zh) * | 2013-12-04 | 2014-03-05 | 深圳市华成峰实业有限公司 | 多级智能存储实现方法和*** |
CN104539713A (zh) * | 2014-12-31 | 2015-04-22 | 北京奇虎科技有限公司 | 业务请求处理方法和装置 |
CN104965850A (zh) * | 2015-04-29 | 2015-10-07 | 云南电网有限责任公司 | 一种基于开源技术的数据库高可用实现方法 |
CN106411578A (zh) * | 2016-09-12 | 2017-02-15 | 国网山东省电力公司电力科学研究院 | 一种适应于电力行业的网站监控***及方法 |
CN107391633A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据库集群自动优化处理方法、装置及服务器 |
CN107729217A (zh) * | 2017-10-30 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种数据库异常处理方法和终端 |
-
2018
- 2018-05-29 CN CN201810532139.9A patent/CN108984589A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617007A (zh) * | 2013-12-04 | 2014-03-05 | 深圳市华成峰实业有限公司 | 多级智能存储实现方法和*** |
CN104539713A (zh) * | 2014-12-31 | 2015-04-22 | 北京奇虎科技有限公司 | 业务请求处理方法和装置 |
CN104965850A (zh) * | 2015-04-29 | 2015-10-07 | 云南电网有限责任公司 | 一种基于开源技术的数据库高可用实现方法 |
CN106411578A (zh) * | 2016-09-12 | 2017-02-15 | 国网山东省电力公司电力科学研究院 | 一种适应于电力行业的网站监控***及方法 |
CN107391633A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 数据库集群自动优化处理方法、装置及服务器 |
CN107729217A (zh) * | 2017-10-30 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种数据库异常处理方法和终端 |
Non-Patent Citations (1)
Title |
---|
奈文: "MongoDB+Redis任务队列性能瓶颈", 《SEGMENTFAULT:HTTPS://SEGMENTFAULT.COM/Q/1010000000318681》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007878A (zh) * | 2019-04-17 | 2019-07-12 | Oppo广东移动通信有限公司 | 存储卡处理方法、存储卡处理装置及移动终端 |
CN112351111A (zh) * | 2020-12-30 | 2021-02-09 | 常州微亿智造科技有限公司 | 一种工业质检文件上传服务器端近实时进度监控方法 |
CN114356225A (zh) * | 2021-12-17 | 2022-04-15 | 得一微电子股份有限公司 | 存储器的数据存储方法、装置、终端设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8521986B2 (en) | Allocating storage memory based on future file size or use estimates | |
CN109947668B (zh) | 存储数据的方法和装置 | |
US9454321B1 (en) | Workload-driven storage configuration management | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
GB2518158A (en) | Method and system for data access in a storage infrastructure | |
US9684665B2 (en) | Storage apparatus and data compression method | |
CN108984589A (zh) | 一种数据写入方法及服务器 | |
CN109804359A (zh) | 用于将数据回写到存储设备的***和方法 | |
US10133757B2 (en) | Method for managing data using in-memory database and apparatus thereof | |
WO2021184996A1 (zh) | 一种针对数据库的数据存储方法及装置 | |
CN112463058B (zh) | 一种碎片数据整理方法、装置及存储节点 | |
CN110750211A (zh) | 一种存储空间的管理方法及装置 | |
CN113806300A (zh) | 数据存储方法、***、装置、设备及存储介质 | |
JP2012247901A (ja) | データベースの管理方法、データベースの管理装置及びプログラム | |
CN108132759B (zh) | 一种文件***中管理数据的方法和装置 | |
CN107181773A (zh) | 分布式存储***的数据存储及数据管理方法、设备 | |
CN113590027B (zh) | 数据存储方法、数据获取方法、***、设备和介质 | |
CN111190537A (zh) | 一种追加写场景下顺序存储磁盘管理的方法及*** | |
KR20210049602A (ko) | 컴퓨팅 장치 및 그 동작 방법 | |
CN108205559B (zh) | 一种数据管理方法及其设备 | |
CN103544254B (zh) | 一种数据管理方法及装置 | |
CN115934002B (zh) | 固态硬盘的访问方法、固态硬盘、存储***及云服务器 | |
CN114942908B (zh) | 索引***、数据处理方法、电子设备及介质 | |
CN103685359B (zh) | 数据处理方法及装置 | |
CN109656900A (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: 20181211 |
|
RJ01 | Rejection of invention patent application after publication |