CN106557278A - 一种缓存数据持久化的方法 - Google Patents

一种缓存数据持久化的方法 Download PDF

Info

Publication number
CN106557278A
CN106557278A CN201510644604.4A CN201510644604A CN106557278A CN 106557278 A CN106557278 A CN 106557278A CN 201510644604 A CN201510644604 A CN 201510644604A CN 106557278 A CN106557278 A CN 106557278A
Authority
CN
China
Prior art keywords
data
persistent storage
key value
storage unit
write
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
Application number
CN201510644604.4A
Other languages
English (en)
Inventor
谭国富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510644604.4A priority Critical patent/CN106557278A/zh
Publication of CN106557278A publication Critical patent/CN106557278A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

本发明提供的缓存数据持久化的方法,利用多个持久化存储单元将缓存的数据进行持久化保存,在进行读取操作时,利用版本号最高的数据进行读取、写入或修改操作,保证缓存的数据和持久化存储数据的一致性,同时也提高了系统的容错性,能够快速的恢复,保证数据存储的可靠。

Description

一种缓存数据持久化的方法
技术领域
本发明涉及数据存储领域,特别涉及一种缓存数据持久化的方法。
背景技术
在互联网时代缓存是任何产品必不可少的重要组成部分,面对海量数据的大并发读写,缓存系统可以极大的提升系统的数据读取能力。但是在高并发下,不同的应用场景的读写应用情况各不相同:有些系统读的次数多,有些系统修改次数多。而对于缓存系统,怎么解决缓存数据和持久化存储的数据的一致性。业务对数据读取,修改,删除等等操作的高TPS(吞吐量)要求,和数据的高可靠的持久化是设计高性能缓存系统的一个大挑战。
现有的技术方案大体设计如下:
A:完全同步,比如redis的RDB的持久化方式,每次将内存的数据全部复制到磁盘存储,再系统宕机时,利用上次保存的RDB文件,完全恢复数据,B:基于增量修改的同步,每次操作的增量同步给持久化系统,比如redis的aof持久化方式,后端收到操作记录,针对本地的副本进行修改。
现有技术方案存在的问题:
A:完全同步的方案,在数据量读写很大的时候,保存和恢复都需要很长的时间,在这个期间系统不能正常的工作,导致系统的可用性降低。
B:基于增量修改的同步,对于突发的异常,比如网络中断,比如服务宕机,数据会出现不一致性,而对于不一致的数据,只重新全量的同步,这样也不能保证数据的可靠性。
发明内容
有鉴于此,本发明实施例提供了一种缓存数据持久化的方法。
本发明提供了一种缓存数据持久化的方法,将持久化存储模块至少配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,所述方法包括:
获取用户的包含所述关键值的读取请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号;
根据所述读取请求的关键值在缓存模块中查找对应的数据;
当所述读取请求在所述缓存模块中未命中时获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号;
将版本号最大的对应的数据作为读取数据返回至用户并将所述读取数据更新至所述缓存模块中。
可选地,所述缓存模块为redis缓存,所述redis缓存由多个主机构成,所述持久化存储模块为KV存储模块。
可选地,所述根据所述读取请求的关键值在缓存模块中查找对应的数据之后,还包括:
当所述读取请求在缓存模块中命中时向所述用户返回所述关键值对应的数据。
本发明提供了另一种缓存数据持久化的方法,将持久化存储模块三个配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,所述方法包括:
获取用户的包含所述关键值的写入或修改请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号;
获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号;
将版本号最大的对应的数据作为所述关键值对应的数据进行写入或修改操作;
将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入;
当判断三个持久化存储单元中的至少两个写入成功时则向所述用户返回成功并将所述写入或修改操作的所述关键值对应的数据更新至缓存模块中。
可选地,所述缓存模块为redis缓存,所述redis缓存由多个主机构成,所述持久化存储模块为KV存储模块。
可选地,所述将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入之后,还包括:
当判断三个持久化存储单元中的至少两个写入失败时则将已写入成功的持久化存储单元进行回滚并向所述用户返回失败。
可选地,所述将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入之前,还包括:
将已进行写入或修改操作的所述关键值对应的数据的版本号提升一级。
本发明提供的缓存数据持久化的方法,利用多个持久化存储单元将缓存的数据进行持久化保存,在进行读取操作时,利用版本号最高的数据进行读取、写入或修改操作,保证缓存的数据和持久化存储数据的一致性,同时也提高了系统的容错性,能够快速的恢复,保证数据存储的可靠。
附图说明
图1是本发明的缓存数据持久化的方法的一种实施例的流程图;
图2是本发明的缓存数据持久化的方法的另一种实施例的流程图;
图3是本发明的缓存数据持久化的方法的一种实施例的流程图;
图4是本发明的缓存数据持久化的方法的另一种实施例的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
结合图1所示,本发明提供的一种缓存数据持久化的方法的一种实施例,将持久化存储模块至少配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,所述方法包括:
S101、获取用户的包含所述关键值的读取请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号。
将持久化存储模块至少配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,可以将持久化存储模块配置成三个或三个以上的持久化存储单元,满足利用当其中任一个持久化存储单元宕机时,其他持久化存储单元可以进行版本号的比较即可以便对持久化存储单元上的版本号最大的数据进行操作,版本号可以表示持久化存储单元上存储的数据的被修改次数,每对数据修改一次可以将该数据的版本号提升一级,持久化存储模块可以利用KV存储系统的方式进行,键值存储,即Key-Value存储,简称KV存储,是NoSQL存储的一种方式。键值存储的数据按照键值对的形式进行组织、索引和存储,本文中采用键值存储的方式将数据保存在缓存模块中,在键值存储中,可以采用关键值对应保存数据,本领域普通技术人员应当了解,不进行赘述。
用户对保存的数据进行读取时可以发出读取请求,这里采用代理的方式,代理模块接收用户的读取请求,读取请求中包括要读取数据对应的关键值,通过获取关键值可以在缓存模块中查找到对应的数据。
S102、根据所述读取请求的关键值在缓存模块中查找对应的数据。
通过对用户的读取请求进行处理可以得到关键值,缓存模块可以采用Redis缓存,在缓存模块中查找是否存在关键值对应的数据,这里的缓存模块只提供基本服务,进行数据缓存,不提供持久化存储服务,在进行操作时,缓存模块中会临时存放一定数据,用户恰好想要读取这部分数据的时候可以直接从缓存模块中找到这些数据,这个过程称为命中,如果在缓存模块中查找不到读取请求中关键值对应的数据,这时称为未命中,此时则需要向持久化存储模块中查找关键值对应的数据。
S103、当所述读取请求在所述缓存模块中未命中时获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号。
当读取请求中要读取的数据在缓存模块中没有找到时需要在持久化存储模块中进行查找,这里持久化存储模块为三个部分,每一个部分对应保存数据,每一个持久化存储单元中的数据都具有版本号,这里,第一持久化存储单元中的第一数据的版本号、第二持久化存储单元中的第二数据的版本号以及第三持久化存储单元中的第三数据的版本号,因为每一次对持久化存储单元上的数据进行修改后,数据的版本号会提升一级,这里通过比较持久化存储模块上每一个持久化存储单元上数据的版本号高低,将版本号最高的数据作为读取数据,这里采用三个及三个以上的持久化存储单元的意义在于,当其中一个持久化存储单元出现宕机时,可以利用剩余两个持久化存储单元上的数据进行版本号比较,仍然可以确定出版本号的高低,当然出现版本号相同时可以将版本号相同中任一个数据作为读取数据,提高整个系统的容错性。
S104、将版本号最大的对应的数据作为读取数据返回至用户并将所述读取数据更新至所述缓存模块中。
这里的版本号用来表示数据被修改的次数,可以采用数字进行标识,例如,初始的版本号可以设置为1,数据每被修改一次则对应的版本号加1,则此时被修改的数据对应的版本号为2,下次再对该数据进行修改后,该数据对应的版本号则变成3,通过对版本号的比较得到版本号对应的数据,将版本号最高的数据作为读取数据返回给用户使用,同时将返回给用户的读取数据更新至缓存模块中,即将读取数据在缓存模块中暂时存放供用户使用。
本发明提供的缓存数据持久化的方法,利用多个持久化存储单元将缓存的数据进行持久化保存,在进行读取操作时,利用版本号最高的数据进行读取操作,保证缓存的数据和持久化存储数据的一致性,同时也提高了系统的容错性,能够快速的恢复,保证数据存储的可靠。
结合图2所示,本发明的缓存数据持久化的方法还提供了一种实施例,包括:
S201、获取用户的包含所述关键值的读取请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号。
步骤S201与上一实施例中步骤S101相类似,此处不作赘述。
S202、根据所述读取请求的关键值在缓存模块中查找对应的数据。
步骤S202与上一实施例中步骤S102相类似,此处不作赘述。
S203、判断所述读取请求在所述缓存模块中是否命中,若所述读取请求在所述缓存模块中命中执行S204,若所述读取请求在所述缓存模块中未命中执行S205。
判断读取请求的数据是否在缓存模块存在,当存在时可以直接在缓存模块中获取所需要的数据,如果没有获取到则在持久化缓存模块中查找。
S204、当所述读取请求在缓存模块中命中时向所述用户返回所述关键值对应的数据。
当用户请求读取的数据在缓存中查找到后可以将查找到的数据向用户反馈,可以节省数据的读取时间。
S205、当所述读取请求在所述缓存模块中未命中时获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号。
步骤S205与上一实施例中步骤S103相类似,此处不作赘述。
S206、将版本号最大的对应的数据作为读取数据返回至用户并将所述读取数据更新至所述缓存模块中。
步骤S206与上一实施例中步骤S104相类似,此处不作赘述。
可选地,所述缓存模块为redis缓存,所述redis缓存由多个主机构成,所述持久化存储模块为KV存储模块。
需要说明的是,redis缓存由多个主机构成,这里redis缓存只使用存储服务功能,可以部署多台服务,通过一致性hash算法访问redis存储服务,从而保证单台redis主机宕机不影响整个系统。
结合图3所示,本发明提供一种缓存数据持久化的方法的一种实施例,将持久化存储模块三个配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,所述方法包括:
S301、获取用户的包含所述关键值的写入或修改请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号。
当用户需要进行写入数据或者修改数据时,系统会接收用户的写入请求或者修改请求,请求中会包括要修改或写入的数据对应的关键值,这里要修改或写入的数据存储在持久化存储模块中,而持久化存储模块至少配置为三个持久化存储单元,具体可以参见上一实施例中的介绍,此处不进行赘述。
S302、获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号。
由于数据进行了多重备份,即每个持久化存储单元中都存储着关键值对应的数据,为了将这些备份的数据中版本号最高的数据查找到,需要对第一数据、第二数据及第三数据的版本号进行获取,以便后续进行比较。
S303、将版本号最大的对应的数据作为所述关键值对应的数据进行写入或修改操作。
通过比较版本号的高低,获取到版本号最大的对应的数据,将这个数据作为当前操作的数据进行修改或写入操作,因为在进行修改或写入操作时,只能提供单台服务,可以用过haproxy或者lvs(中文:Linux虚拟服务器,英文:Linux Virtual Server)等方案提供主备容灾机制。
S304、将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入。
对已进行写入或修改所述关键值对应的数据分别向各个持久化存储单元写入,即将修改后的数据重新保存在每一个持久化存储单元中,写入的过程本领域普通技术人员应当了解,具体不作赘述。
S305、当判断三个持久化存储单元中的至少两个写入成功时则向所述用户返回成功并将所述写入或修改操作的所述关键值对应的数据更新至缓存模块中。
当修改或写入的数据进行写入完成后,可以判断属否都写入成功,当至少两个持久化存储单元写入成功后则认为写入操作成功,即成功将修改或者写入的数据重新保存在每一个持久化存储单元中,这时可以向用户进行反馈成功,以便告知用户进行的修改或写入操作已成功,并将写入或修改成功的数据保存在缓存模块中供使用。
本发明提供的缓存数据持久化的方法,利用多个持久化存储单元将缓存的数据进行持久化保存,在进行读取操作时,利用版本号最高的数据进行写入或修改数据的操作,保证缓存的数据和持久化存储数据的一致性,同时也提高了系统的容错性,能够快速的恢复,保证数据存储的可靠。
结合图4所示,本发明的缓存数据持久化的方法的另一种实施例,包括:
S401、获取用户的包含所述关键值的写入或修改请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号。
步骤S401与上一实施例中步骤S301相类似,此处不作赘述。
S402、获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号。
步骤402与上一实施例中步骤S302相类似,此处不作赘述。
S403、将版本号最大的对应的数据作为所述关键值对应的数据进行写入或修改操作。
步骤403与上一实施例中步骤S303相类似,此处不作赘述。
S404、将已进行写入或修改操作的所述关键值对应的数据的版本号提升一级。
为了便于对数据的修改次数进行区分,当数据被修改一次后,则将对应的版本号提升一个级别,例如可以采用加1的方式,以便通过版本号的不同可以获取到版本号最高的数据供操作使用,这里就爱那个完成写入或者修改操作的数据的版本号进行加1,当然还可以采用其他的编号方式,例如利用英文字母的顺序等,具体不做限定。
S405、将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入。
步骤S405与上一实施例中S304相类似,此处不作赘述。
S406、判断三个持久化存储单元中的至少两个是否写入成功,若成功则执行S407,若失败则执行S408。
对写入的结果进行判断,以执行不同的操作。
S407、当判断三个持久化存储单元中的至少两个写入成功时则向所述用户返回成功并将所述写入或修改操作的所述关键值对应的数据更新至缓存模块中。
步骤S407与上一实施例中步骤S305相类似,此处不进行赘述。
S408、当判断三个持久化存储单元中的至少两个写入失败时则将已写入成功的持久化存储单元进行回滚并向所述用户返回失败。
为了保持数据的一致性,当出现至少两个持久化存储单元写入失败时可以认为写入操作失败,这是需要恢复到写入之前的状态,所以需要对写入成功的持久化存储单元进行恢复操作,即采用数据回滚,数据恢复到上一次正确状态,这样可以使得三个持久化存储单元中的数据保持一致。
可选地,所述缓存模块为redis缓存,所述redis缓存由多个主机构成,所述持久化存储模块为KV存储模块。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种缓存数据持久化的方法进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种缓存数据持久化的方法,其特征在于,将持久化存储模块至少配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,所述方法包括:
获取用户的包含所述关键值的读取请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号;
根据所述读取请求的关键值在缓存模块中查找对应的数据;
当所述读取请求在所述缓存模块中未命中时获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号;
将版本号最大的对应的数据作为读取数据返回至用户并将所述读取数据更新至所述缓存模块中。
2.根据权利要求1所述的方法,其特征在于,所述缓存模块为redis缓存,所述redis缓存由多个主机构成,所述持久化存储模块为KV存储模块。
3.根据权利要求2所述的方法,其特征在于,所述根据所述读取请求的关键值在缓存模块中查找对应的数据之后,还包括:
当所述读取请求在缓存模块中命中时向所述用户返回所述关键值对应的数据。
4.一种缓存数据持久化的方法,其特征在于,将持久化存储模块三个配置为第一持久化存储单元、第二持久化存储单元以及第三持久化存储单元,所述持久化存储模块用于存储基于关键值对应存放的数据,所述方法包括:
获取用户的包含所述关键值的写入或修改请求,其中,所述关键值用于查找对应的数据,所述第一持久化存储单元存储所述关键值对应的第一数据,所述第二持久化存储单元存储所述关键值对应的第二数据以及所述第三持久化存储单元存储所述关键值对应的第三数据,所述第一数据、所述第二数据及所述第三数据均具有用于标识被修改次数的版本号;
获取所述第一数据的版本号、所述第二数据的版本号及所述第三数据的版本号;
将版本号最大的对应的数据作为所述关键值对应的数据进行写入或修改操作;
将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入;
当判断三个持久化存储单元中的至少两个写入成功时则向所述用户返回成功并将所述写入或修改操作的所述关键值对应的数据更新至缓存模块中。
5.根据权利要求4所述的方法,其特征在于,所述缓存模块为redis缓存,所述redis缓存由多个主机构成,所述持久化存储模块为KV存储模块。
6.根据权利要求5所述的方法,其特征在于,所述将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入之后,还包括:
当判断三个持久化存储单元中的至少两个写入失败时则将已写入成功的持久化存储单元进行回滚并向所述用户返回失败。
7.根据权利要求4所述的方法,其特征在于,所述将已进行写入或修改操作的所述关键值对应的数据分别向所述第一持久化存储单元、所述第二持久化存储单元以及所述第三持久化存储单元写入之前,还包括:
将已进行写入或修改操作的所述关键值对应的数据的版本号提升一级。
CN201510644604.4A 2015-09-30 2015-09-30 一种缓存数据持久化的方法 Pending CN106557278A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510644604.4A CN106557278A (zh) 2015-09-30 2015-09-30 一种缓存数据持久化的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510644604.4A CN106557278A (zh) 2015-09-30 2015-09-30 一种缓存数据持久化的方法

Publications (1)

Publication Number Publication Date
CN106557278A true CN106557278A (zh) 2017-04-05

Family

ID=58418282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510644604.4A Pending CN106557278A (zh) 2015-09-30 2015-09-30 一种缓存数据持久化的方法

Country Status (1)

Country Link
CN (1) CN106557278A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025289A (zh) * 2017-04-14 2017-08-08 腾讯科技(深圳)有限公司 一种数据处理的方法及相关设备
CN109815049A (zh) * 2017-11-21 2019-05-28 北京金山云网络技术有限公司 节点宕机恢复方法、装置、电子设备及存储介质
CN109933908A (zh) * 2019-03-14 2019-06-25 恒生电子股份有限公司 一种业务节点模型保存方法、应用方法及装置
CN111708783A (zh) * 2020-06-18 2020-09-25 北京金山云网络技术有限公司 数据存储和数据恢复方法、装置及电子设备
CN111752977A (zh) * 2020-06-16 2020-10-09 北京字节跳动网络技术有限公司 一种数据读取请求、数据写入请求的处理方法及装置
CN111752919A (zh) * 2020-06-16 2020-10-09 北京字节跳动网络技术有限公司 一种数据写入方法、数据读取方法及装置
CN112286947A (zh) * 2020-09-29 2021-01-29 阿里云计算有限公司 保持不同存储系统的数据一致的方法以及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
CN102436408A (zh) * 2011-10-10 2012-05-02 上海交通大学 基于Map/Dedup的数据存储云化和云备份方法
CN103518364A (zh) * 2013-03-19 2014-01-15 华为技术有限公司 分布式存储系统的数据更新方法及服务器
US8650156B1 (en) * 2010-12-23 2014-02-11 Amazon Technologies, Inc. System and method for fetching the latest versions of stored data objects
CN104317926A (zh) * 2014-10-31 2015-01-28 北京思特奇信息技术股份有限公司 一种持久化的数据存储和查询方法及对应的装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
US8650156B1 (en) * 2010-12-23 2014-02-11 Amazon Technologies, Inc. System and method for fetching the latest versions of stored data objects
CN102436408A (zh) * 2011-10-10 2012-05-02 上海交通大学 基于Map/Dedup的数据存储云化和云备份方法
CN103518364A (zh) * 2013-03-19 2014-01-15 华为技术有限公司 分布式存储系统的数据更新方法及服务器
CN104317926A (zh) * 2014-10-31 2015-01-28 北京思特奇信息技术股份有限公司 一种持久化的数据存储和查询方法及对应的装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李浩: ""面向非结构化数据查询优化的存储系统"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025289A (zh) * 2017-04-14 2017-08-08 腾讯科技(深圳)有限公司 一种数据处理的方法及相关设备
CN107025289B (zh) * 2017-04-14 2018-12-11 腾讯科技(深圳)有限公司 一种数据处理的方法及相关设备
CN109815049B (zh) * 2017-11-21 2021-03-26 北京金山云网络技术有限公司 节点宕机恢复方法、装置、电子设备及存储介质
WO2019101095A1 (zh) * 2017-11-21 2019-05-31 北京金山云网络技术有限公司 节点宕机恢复方法、装置、电子设备及存储介质
CN109815049A (zh) * 2017-11-21 2019-05-28 北京金山云网络技术有限公司 节点宕机恢复方法、装置、电子设备及存储介质
RU2751551C1 (ru) * 2017-11-21 2021-07-14 Бейджин Кингсофт Клауд Нетворк Текнолоджи Ко., Лтд. Способ и устройство для восстановления нарушенной работоспособности узла, электронное устройство и носитель данных
US11249860B2 (en) 2017-11-21 2022-02-15 Beijing Kingsoft Cloud Network Technology, Co., Ltd. Node down recovery method and apparatus, electronic device, and storage medium
CN109933908A (zh) * 2019-03-14 2019-06-25 恒生电子股份有限公司 一种业务节点模型保存方法、应用方法及装置
CN111752977A (zh) * 2020-06-16 2020-10-09 北京字节跳动网络技术有限公司 一种数据读取请求、数据写入请求的处理方法及装置
CN111752919A (zh) * 2020-06-16 2020-10-09 北京字节跳动网络技术有限公司 一种数据写入方法、数据读取方法及装置
CN111752977B (zh) * 2020-06-16 2024-01-19 抖音视界有限公司 一种数据读取请求、数据写入请求的处理方法及装置
CN111708783A (zh) * 2020-06-18 2020-09-25 北京金山云网络技术有限公司 数据存储和数据恢复方法、装置及电子设备
CN112286947A (zh) * 2020-09-29 2021-01-29 阿里云计算有限公司 保持不同存储系统的数据一致的方法以及装置
CN112286947B (zh) * 2020-09-29 2022-10-04 阿里云计算有限公司 保持不同存储系统的数据一致的方法以及装置

Similar Documents

Publication Publication Date Title
CN106557278A (zh) 一种缓存数据持久化的方法
US11775392B2 (en) Indirect replication of a dataset
US7814149B1 (en) Client side data deduplication
US10839016B2 (en) Storing metadata in a cuckoo tree
CN104077380B (zh) 一种重复数据删除方法、装置及系统
US20100169289A1 (en) Two Phase Commit With Grid Elements
US11176110B2 (en) Data updating method and device for a distributed database system
CN109800185B (zh) 一种数据存储系统中的数据缓存方法
CN103617097B (zh) 文件恢复方法及装置
US7386664B1 (en) Method and system for mirror storage element resynchronization in a storage virtualization device
CN104572920A (zh) 一种数据整理方法和装置
US9075836B2 (en) Partitioning keys for hash tables
US8909677B1 (en) Providing a distributed balanced tree across plural servers
US20230342395A1 (en) Network key value indexing design
CN112579595A (zh) 数据处理方法、装置、电子设备及可读存储介质
US20210349850A1 (en) Managing snapshotting of a dataset using an ordered set of b+ trees
CN113867627B (zh) 一种存储系统性能优化方法及系统
CN110618790A (zh) 基于重复数据删除的雾存储数据去冗余方法
US11442663B2 (en) Managing configuration data
US11003540B2 (en) Method, server, and computer readable medium for index recovery using index redo log
US11163446B1 (en) Systems and methods of amortizing deletion processing of a log structured storage based volume virtualization
US11093169B1 (en) Lockless metadata binary tree access
CN111625500B (zh) 文件快照方法及装置、电子设备和存储介质
US11237925B2 (en) Systems and methods for implementing persistent data structures on an asymmetric non-volatile memory architecture
US10795596B1 (en) Delayed deduplication using precalculated hashes

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170405