一种防卡死的数据存储方法、系统及装置与流程

文档序号:20440799发布日期:2020-04-17 22:23阅读:269来源:国知局
一种防卡死的数据存储方法、系统及装置与流程

本发明涉及数据存储领域,尤其涉及一种防卡死的数据存储方法、系统及装置。



背景技术:

目前,存储数据的方式有很多,有的会直接采用redis集群存储数据,但是并不适用于存储有关联的数据,有的是把数据存在如mysql的数据库,利用redis作缓存,但是目前的存储方式由于存储数据和读取数据都在一个数据库进行,进行读操作的时候比较麻烦,如果遇到并发量大的时候,容易出现卡死的情况。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种防卡死的数据存储方法、装置及系统,可提高服务器的负载性能。

本发明所采用的第一技术方案是:一种防卡死的数据存储方法,包括以下步骤:

搭建redis集群;

获取数据,把数据写入到redis集群的主redis缓存单元;

把写入到主redis缓存单元的数据同步到redis集群的从redis缓存单元;

把主redis缓存单元的数据存储到主数据库;

把主数据库的数据复制到从数据库。

所述主redis缓存单元只进行写操作,所述从redis缓存单元只进行读操作,所述主数据库只允许存储,所述从数据库只允许读取。

进一步,所述主数据库是mysql数据库,用于储存有关联的数据,所述从数据库类型与主数据库一致,用于从主数据库复制数据。

进一步,所述从数据库与集群的从redis缓存单元一一对应。

进一步,所述主redis缓存单元同步到从redis缓存单元是实时同步的,当主redis缓存单元数据丢失时,可以通过从redis缓存单元进行恢复。

进一步,所述主redis缓存单元可设置为可被从redis缓存单元替换或不可被从redis缓存单元替换。

进一步,所述主数据库可被从数据库替换,主数据库出现故障时,将从数据库替换主数据库继续进行存储工作。

进一步,所述主数据库数据丢失时,可在从数据库复制数据进行回复。

本发明所采用的第二技术方案是:一种防卡死数据存储系统,包括:

初始模块,用于搭建redis集群;

写入模块,用于获取数据,把数据写入到redis集群的主redis缓存单元;

同步模块,用于把写入到主redis缓存单元的数据同步到redis集群的从redis缓存单元;

存储模块,用于把主redis缓存单元的数据存储到主数据库;

复制模块,用于把主数据库的数据复制到从数据库。

本发明所采用的第三技术方案是:一种防卡死的数据存储装置,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述第一技术方案一种防卡死的数据存储方法。

本发明方法、装置及系统的有益效果是:本发明把数据存储分为两层,第一层以redis集群来实现,通过在主redis缓存单元存储,在集群的从redis缓存单元读取来实现读写分离,第二层以mysql的主从复制来实现,在主数据库存储,在从数据库读取,使读操作和写操作不在同一个数据库中进行,可以有效提高服务器的负载性能。

附图说明

图1是本发明一种防卡死的数据存储方法的步骤流程图;

图2是本发明一种防卡死的数据存储系统的结构框图;

具体实施方式

下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

如图1所示,本发明提供了一种防卡死的数据存储方法,该方法包括以下步骤:

s101、搭建一个redis集群;

具体地,其中主redis缓存单元只允许进行写操作,从redis缓存单元只允许进行读操作。

s102、获取数据,把数据写入到主redis缓存单元;

具体地,所有的写操作都在主redis缓存单元中进行。

s103、把写入到主redis缓存单元的数据同步到该集群的从redis缓存单元;

具体地,数据同步分为两步,当初次连接启动时,把主redis缓存单元的全部数据同步到从redis缓存单元中,后续只是把主redis缓存单元有修改的数据同步到从redis缓存单元。

s104、把主redis缓存单元的数据存储到主数据库;

具体地,根据需要存储的数据的类型来选用主数据库的类型,并且把一些不适合放在redis里存储的以及不常用的数据存储到主数据库,这样既可以提高服务器负载性能,又可以使该方案适用的场景更广泛,还可以极大的增大存储空间,使其能存储更多数据。

s105、把主数据库的数据复制到从数据库。

具体地,根据s101搭建的redis集群,来决定选用多少个从数据库。

进一步作为本方法的优选实施例,所述主数据库和从数据库均采用mysql数据库,该数据库属于关系型数据库,可用于储存有关联的数据,所述从数据库类型与主数据库一致,用于从主数据库复制数据。

进一步作为本方法的优选实施例,所述从数据库与集群的从redis缓存单元一一对应。

进一步作为本方法的优选实施例,所述主redis缓存单元同步到从redis缓存单元是实时同步的,当主redis缓存单元数据丢失时,可以通过从redis缓存单元进行恢复。

进一步作为本方法的优选实施例,所述主redis缓存单元可设置为可被从redis缓存单元替换或不可被从redis缓存单元替换。

具体地,如果设置为可被从redis缓存单元替换时,当主redis缓存单元出现故障时,可以提出以其中一个从redis缓存单元充当主redis缓存单元,如果设置为不可被从redis缓存单元替换,当主redis缓存单元出现故障时,从redis缓存单元等待主redis缓存单元重启后重新连接。

进一步作为本方法的优选实施例,所述主数据库可被从数据库替换,主数据库出现故障时,将从数据库替换主数据库继续进行存储工作。

进一步作为本方法的优选实施例,所述主数据库数据丢失时,可在从数据库复制数据。

下面给出一个具体实施例,搭建一个一主四从的redis集群,以该集群的其中一个redis为主redis缓存单元,其他4个redis为从redis缓存单元,为了与redis集群的从redis缓存单元一一对应,所以选用4个从数据库,当数据需要存储时,先把数据写进redis集群的主redis缓存单元,然后同步复制到其余从redis缓存单元,并且把主redis缓存单元中需要长久存储的数据以及不常用的数据存储到主mysql数据库,最后把主mysql数据库的数据复制到4个从数据库中。当需要读取数据时,先在其中一个从redis缓存单元读取,若该从redis缓存单元没有所需的数据,再到其所对应的从数据库中读取,这样节省了存储空间与读取时间。

如图2所示,一种防卡死的数据存储系统,包括:

初始模块,用于搭建一个redis集群,限定一个redis为主redis缓存单元,其余多个redis为从redis缓存单元;

写入模块,用于获取数据,把数据写入到主redis缓存单元;

同步模块,用于把写入到主redis缓存单元的数据同步到该集群的从redis缓存单元;

存储模块,用于把主redis缓存单元的数据存储到主数据库;

复制模块,用于把主数据库的数据复制到从数据库。

优选地,所述一种防卡死的数据存储系统,还包括:

调用模块,用于当主数据库出现故障时,调用从数据库充当主数据库继续工作。

本发明还提供了一种防卡死的数据存储装置,该装置包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述一种防卡死的数据存储方法。

上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

由上述可得,本发明的存储方案所具有的优点是:通过更改数据库的类型,可存储各种类型的数据;读取数据时,先在redis缓存单元读取,在redis缓存单元读取不到所需的数据时,再到数据库里搜索;通过redis集群在一个redis里写数据,在其他4个redis里读数据,实现读写分离,可以提高服务器的负载能力;通过把不常用的数据存储到mysql数据库,极大的增加存储空间;可以通过使用多个从redis缓存单元以及多个从数据库来提高服务器的容灾能力。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1