【技术实现步骤摘要】
本专利技术涉及数据存储技术,尤其涉及一种数据存储方法及数据存储系统。
技术介绍
目前,内存数据持久化存储主要采用纯内存存储引擎,主要包括持久化消息队列(mcq, MemcacheQ)、远程字典服务器(Redis, Remote Dictionary Server)以及关系型数据库管理系统(Mysql)等,Memcached暂时没有自带的数据落地方法,Redis则自带有不断添加模式(A0F, Append Only Mode)文件和快照(snapshot)两种方式,Mysql的内存表则通过主动调用转储(dump)命令来将数据全部导出,然后写入磁盘。现有支持数据落地的内存存储引擎,Redis的AOF文件实现了增量备份(binlog),即对新增加的数据更新命令进行备份,通过将数据更新命令追加写入到磁盘,这样,可保证 用户的数据更新命令能够被及时写入到磁盘,服务异常退出后,可以根据AOF文件中存储的数据更新命令来恢复数据,但该方法随着数据更新命令的不断增多,使得AOF文件的数据量越来越大,数据恢复所需的时间会越来越长。为了降低数据恢复所需的时间,Redis引入了 AOF文件重写机制,其功能就是重新生成一份AOF文件,新的AOF文件中一条记录的数据更新命令只会有一次,而现有常规的AOF文件,记录了对同一数据的多次更新命令,这样,可以减小AOF文件的大小,但该方法在重写AOF文件时,由于Redis在重写AOF文件时会占用大量的CPU和内存资源,导致负载过高,出现短暂的服务暂停现象,因而,在重写时,导致数据丢失问题,不能保障数据的安全性;而且,AOF文件的重写,也将影响Red ...
【技术保护点】
一种数据存储方法,该方法包括:接收数据更新命令,为数据更新命令分配游标;将接收的数据更新命令以及分配的游标写入不断添加模式AOF文件,并将AOF文件写入磁盘;根据数据更新命令更新数据,在更新数据成功后,按照预先设置的时间周期,将数据写入磁盘中的数据文件,将为数据更新命令分配的游标写入磁盘中的游标文件;重启服务,加载磁盘数据文件中的数据,获取游标文件中顺序位最高的游标,从存储的AOF文件中,加载该游标对应的数据更新命令之后的数据更新命令。
【技术特征摘要】
1.一种数据存储方法,该方法包括 接收数据更新命令,为数据更新命令分配游标; 将接收的数据更新命令以及分配的游标写入不断添加模式AOF文件,并将AOF文件写入磁盘; 根据数据更新命令更新数据,在更新数据成功后,按照预先设置的时间周期,将数据写入磁盘中的数据文件,将为数据更新命令分配的游标写入磁盘中的游标文件; 重启服务,加载磁盘数据文件中的数据,获取游标文件中顺序位最高的游标,从存储的AOF文件中,加载该游标对应的数据更新命令之后的数据更新命令。2.根据权利要求I所述的方法,其中,所述为数据更新命令分配游标包括 判断当前接收的数据更新命令是否为接收的第一条数据更新命令,如果是,为接收的数据更新命令分配游标序列号,并记录分配的游标序列号信息;如果不是,将记录的游标序列号进行累加,为接收数据更新命令设置累加的游标序列号,记录累加的游标序列号信息。3.根据权利要求I所述的方法,其中,所述为数据更新命令分配游标包括 判断AOF文件中是否存在写入的数据更新命令,如果不存在,为接收的数据更新命令分配游标序列号;如果存在,获取AOF文件中当前已写入的数据更新命令的游标序列号信息,对获取的游标序列号进行累加,为接收的数据更新命令设置累加的游标序列号。4.根据权利要求I至3任一项所述的方法,其中,所述将为数据更新命令分配的游标写入磁盘中的游标文件包括 获取预先设置的时间周期内,更新数据成功对应的数据更新命令,将为所述更新数据成功对应的数据更新命令分配的游标写入磁盘中的游标文件。5.根据权利要求4所述的方法,其中,所述将为数据更新命令分配的游标写入磁盘中的游标文件进一步包括 读取游标文件中最新存储的游标序列号; 判断为数据更新命令分配的游标序列号是否大于游标文件中最新存储的游标序列号,如果是,将为数据更新命令分配的游标写入磁盘中的游标文件;否则,不作处理。6.根据权利要求I至3任一项所述的方法,其中,所述将数据写入磁盘中的数据文件之后,进一步包括 删除数据文件中除最近更新数据外的其他数据。7.根据权利要求I至3任一项所述的方法,其中,所述将为数据更新命令分配的游标写入磁盘中的游标文件之后,进一步包括 存储游标文件中最大的游标序列号,删除游标文件中除最大游标序列号外的其他游标序列号。8.根据权利要求I至3任一项所述的方法,其中,所述加载磁盘数据文件中的数据,获取游标文件中顺序位最高的游标,从存储的AOF文件中,加载该游标对应的数据更新命令之后的数据更新命令包括 读取数据文件,获取数据文件中最近更新的数据; 从游标文件中,获取游标文件中顺序位最大的游标序列号; 根据该最大的游标序列号,查询存储的AOF文件,根据AOF文件中的映射关系,获取最大的游标序列号对应的数据更新命令;对获取的数据文件中最近更新的数据,依序执行最大的游标序列号对应的数据更新命令之后的数据更新命令。9.一种数据存储系统,其特征在于,该数据...
【专利技术属性】
技术研发人员:汤晓刚,
申请(专利权)人:新浪网技术中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。