CN112632077A - 基于redis的数据存储方法、装置、设备及存储介质 - Google Patents
基于redis的数据存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112632077A CN112632077A CN202011584745.9A CN202011584745A CN112632077A CN 112632077 A CN112632077 A CN 112632077A CN 202011584745 A CN202011584745 A CN 202011584745A CN 112632077 A CN112632077 A CN 112632077A
- Authority
- CN
- China
- Prior art keywords
- subdata
- data
- index
- parent
- redis
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本申请涉及区块链技术,提供了一种基于redis的数据存储方法、装置、设备及可存储介质,通过将大数据量的母数据分割成多个小数据量的子数据分布存储到节点服务器中,实现数据的平衡存储,避免大数据量的数据直接存储在一台服务器上而导致该服务器内存很快被消耗光;拆分后,可通过并行方式获取子数据,拆分后得到的子数据较小,降低了redis系统的阻塞时间,提高了系统性能。其中,子数据中记录的索引信息可存储于区块链中。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种基于redis的数据存储方法、装置、设备及存储介质。
背景技术
redis是一个高性能key-value存储系统,该系统中,客户端(client)通过redis集群(cluster)链接到每一个节点服务器(node)。Redis集群采用虚拟槽位(slot)分区:一个redis集群包含16384个哈希槽(hash slot),数据库中的每个键(key)都属于这16384个哈希槽的其中一个,集群通过计算来确定键属于哪个槽位(slot),各个节点分别负责处理不同槽值范围的槽,根据键对应的槽值与节点服务器所负责的槽值匹配将该键(key)的value存储至相应的节点服务器。由于采用高质量的哈希算法,每个槽所映射的数据通常比较均匀,因此可以把键均匀的分散到各个节点服务器上,从而实现数据的分布存储。但是,当出现键的数据量很大的情况时,单个大数据量的数据的键通过哈希槽分配到节点服务器后依然会导致存储此key值的节点服务器内存被大量消耗,该台节点服务器的内存会很快消耗光从而导致出现各种问题。
发明内容
本申请提供了一种基于redis的数据存储方法、装置、计算机设备及存储介质,旨在解决大数据量的数据存储在至服务器上时占用内存过大而导致该服务器内存很快被消耗光的问题。
第一方面,本申请提供了一种基于redis的数据存储方法,包括:
将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值;
根据各个子数据的位置信息,确定各个子数据的键;所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同;
基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据;
根据各个子数据的键将所述多个子数据存储到节点服务器中。
第二方面,本申请提供了一种基于redis的数据存储装置,包括:
数据分割单元,用于将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值;
键确定单元,根据各个子数据的位置信息,确定各个子数据的键;所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同;
索引记录单元,用于基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据;
子数据存储单元,用于根据各个子数据的键将所述多个子数据存储到节点服务器中。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述的计算机程序并在执行所述的计算机程序时实现如上所述的基于redis的数据存储方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机的可读存储介质存储有计算机程序,其特征在于,若所述计算机程序被处理器执行,实现如上所述的基于redis的数据存储方法。
本申请提供了一种基于redis的数据分布存储方法、装置、设备及可存储介质,通过将大数据量的母数据分割成多个小数据量的子数据分布存储到节点服务器中,实现数据的平衡存储,避免大数据量的数据直接存储在一台服务器上而导致该服务器内存很快被消耗光;拆分后,可通过并行方式获取子数据,拆分后得到的子数据较小,降低了redis系统的阻塞时间,提高了系统性能。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种基于redis的数据存储方法的示意流程图;
图2是本申请另一实施例提供的一种基于redis的数据存储方法的示意流程图;
图3是本申请一实施例提供的一种基于redis的数据存储装置的结构示意框图;
图4是本申请另一实施例提供的一种基于redis的数据存储装置的结构示意框图;
图5是本申请一实施例提供的一种计算机设备的结构示意框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图中的模块划分。
本申请的实施例提供了一种基于redis的数据存储方法、装置、计算机设备及计算机可读存储介质。例如,在实际应用中搭建了一个redis集群,然后对规则数据进行编译后存储,但是这些数据的数据量比较大,有的数据量高达数百兆。通过本申请提供的基于redis的数据存储方法,可将上述编译后的规则数据中数据量大的数据分割成多个小数据量的子数据分布存储到节点服务器中,实现数据的平衡存储,避免大数据量的数据直接存储在一台服务器上而导致该节点服务器内存被大量占用从而避免产生后续问题。该基于redis的数据存储方法,可适用于所有大数据量的数据的存储,不限于上述所提到的编译后的规则数据,例如大数据量的图像数据、视频数据、文本数据等等。
其中,该基于redis的数据存储方法可以用于服务器,当然也可以用于终端,其中,终端可以是手机、平板电脑、笔记本电脑、台式电脑等电子设备;服务器例如可以为单独的服务器或服务器集群。但为了便于理解,以下实施例将以应用于服务器的基于redis的数据存储方法进行详细介绍。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请实施例提供的一种基于redis的数据存储方法的步骤示意流程图,具体包括步骤S110至步骤S140。
S110、将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值。
通过将大数据量的母数据分割成小数据量的子数据进行存储,可避免单个大数据量的数据全部存储在一台服务器上而导致该台服务器内存占用过大。
在一实施例中,所述将母数据分割成多个子数据包括子步骤S110a-S110c。S110a、计算所述容量阈值与节点服务器(node)个数的乘积得到总阈值;
S110b、若所述母数据的数据量不超过所述总阈值,将所述母数据以所述容量阈值为单位分割成多个子数据;
S110c、若所述母数据的数据量超过所述总阈值,将母数据分割成数据量大小均等的多个子数据,所述子数据的个数与节点服务器的个数相同。
在子数据的数据量不太大的情况下,通过步骤S110b以所述容量阈值为单位分割母数据,可在保证子数据的数据量不超标的情况下尽量少的分割子数据;在子数据的数据量过大的情况下,通过步骤S110c分割母数据,可保证所分割的子数据的数据量分布均匀。
例如,一应用场景中,容量阈值为100k,节点服务器为6个,母数据的数据量为550k,计算容量阈值与节点服务器个数的乘积得到总阈值为600k,母数据的数据量不超过所述总阈值,因此,将母数据以容量阈值100K为单位分割成多个子数据,即得到五个100k数据量的子数据及一个50k数据量的子数据。另一应用场景中,容量阈值为100k,母数据的数据量为2000k,共有5个节点服务器,计算容量阈值与节点服务器个数的乘积得到总阈值为500k,母数据的数据量超过了所述总阈值,因此,将母数据分割成容量大小均等的5个子数据,即得到5个容量大小为400k的子数据。
S120、根据各个子数据的位置信息,确定各个子数据的键;所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同。
示例性的,所述位置信息可以在步骤S110中将母数据分割成多个子数据时,根据各个子数据在母数据中的位置得到。例如,一个母数据为abcde,分割成ab、cd、e三个子数据,则ab子数据的位置信息是在母数据中处于起始位置,排第一;cd子数据的位置信息是cd子数据的位置信息是在母数据中排第二,e子数据的位置信息是在母数据中处于末尾位置,排第三。
S130、基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据。
一实施例中,索引规则包括:在每个子数据中记录所有子数据的索引信息,可通过获取任意子数据中的索引信息来获取所有子数据。
另一实施例中,索引规则包括:在每个子数据中均记录与其位置信息相邻的所有子数据的索引信息,可通过获取其中一个子数据来获取与其位置相邻的子数据,再通过与其位置相邻的子数据的索引信息获取更多的子数据。
S140、根据各个子数据的键将所述多个子数据存储到节点服务器中。
由于不同位置信息对应的子数据的键不同,而redis是通过根据键计算槽位(slot)来实现分布存储,因此可通过子数据的不同键将子数据分布存储到节点服务器中。
步骤S130及步骤S140执行顺序的先后不是固定的,可以根据需要灵活调整。例如,一实施例中,所述索引信息在对应子数据被存储前就已确定,则步骤S130的执行顺序可以排在步骤S140的前面;另一实施利中,所述索引信息在对应子数据被存储后才确定,比如所述索引信息包括子数据存储时所对应的槽位,则步骤S130的执行顺序排在步骤S140的后面。
示例性的,根据各个子数据的位置信息,确定所述多个子数据中的一个为索引子数据,所述索引子数据至少记录所述索引子数据外的其余子数据的索引信息。具体的,将所述母数据起始位置或末尾位置对应的子数据确定为索引子数据。起始位置或末尾位置指的是子数据在母数据中存储的位置为最前或最后,可以根据子数据的位置信息判断子数据是否处于起始位置或末尾位置。
示例性的,步骤S120具体包括:将所述母数据的键确定为所述索引子数据的键,将所述母数据的键加上所述索引子数据以外的子数据对应的位置信息的标识,得到所述索引子数据以外的子数据的键。示例性的,所述位置信息的标识可以为所述索引子数据以外的子数据按在母数据中的位置所对应的序号。例如,母数据的键(key)为example,共有6个子数据;将母数据起始位置的子数据确定为索引子数据,索引子数据的键为母数据的键example,所述索引子数据以外的5个子数据的键由母数据的键加上对应的所述位置信息的标识得到,所述位置信息的标识为所述索引子数据以外的子数据按在母数据中的位置的前后依次所对应序号1-5,即另外5个子数据的键按照在母数据中的位置由前至后依次为example1、example2、example3、example4、example5。
示例性的,为方便数据的管理和获取,其中至少一个子数据中增加所述多个子数据的总个数。具体的,在所述索引子数据中记录所述多个子数据的总个数。为进一步方便数据的管理、统一,还可以在所有子数据中均增加所述多个子数据的总个数;同时,所述索引子数据外的其余子数据,每一个均参照所述索引子数据,至少增加自身外的其余子数据的索引信息。
需要强调的是,为进一步保证上述母数据的键、子数据的键以及所述索引信息的私密和安全性,上述母数据的键、子数据的键以及所述索引信息还可以存储于一区块链的节点中。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一些实施方式中,如图2所示,所述基于redis的数据存储方法还包括步骤S210-步骤S230。步骤S210-步骤S230用于读取如步骤S110至步骤S140所述的基于redis的数据存储方法所存储的母数据。
步骤S210、根据所述子数据的键从对应的节点服务器获取子数据。
示例性的,步骤S210具体包括:根据所述索引子数据的键从对应节点服务器获取索引子数据。由于所述索引子数据的键与母数据的键相同,因此可以通过所述母数据的键获取所述索引子数据,进而获取其他子数据,这极大方便了数据的使用和管理。
步骤S220、根据所述至少另一子数据的索引信息,从对应的节点服务器获取至少另一子数据。
示例性的,步骤S220具体包括:根据所述索引子数据的索引信息中,从对应的节点服务器至少获取所述索引子数据外的其余子数据;更具体的,可以根据所述索引子数据的索引信息中的所述槽位,通过并行连接对应的节点服务器从对应的节点服务器至少获取所述索引子数据外的其余子数据。由于在redis系统中,槽位是与节点服务器对应的,因此,通过所述槽位可连接到所述对应的节点服务器,通过并行连接的方式连接所述节点服务器可提高数据的获取效率。
步骤S230、根据获取的各个子数据的键是否包括所述母数据的所有子数据的键,判断是否获取所述母数据的所有子数据。
示例性的,若判断为获取了所述母数据的所有子数据则执行步骤S240,否则执行步骤S210或步骤220继续获取子数据。
步骤S240、在判定获取所述母数据的所有子数据时,根据各个子数据的键将子数据拼接处理,得到所述母数据。
由于各个子数据的键是根据各个子数据的位置信息得到的,因此,可以根据各个子数据的键可获得对应的位置信息,从而得到各个子数据的拼接顺序。
如图3所示,该基于redis的数据存储装置,包括:数据分割单元110、键确定单元120、索引记录单元130、子数据存储单元140。
数据分割单元110,用于将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值;将所述母数据分割成多个子数据;
键确定单元120,用于根据各个子数据的位置信息,确定各个子数据的键;所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同;
索引记录单元130,用于基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据;
子数据存储单元140,用于根据各个子数据的键将所述多个子数据存储到节点服务器中。
示例性的,所述数据分割单元110包括总阈值计算单元、容量阈值分割单元及平均分割单元。
示例性的,所述总阈值计算单元,用于计算所述容量阈值与节点服务器(node)个数的乘积得到总阈值。
示例性的,所述容量阈值分割单元,用于:若所述母数据的数据量不超过所述总阈值,将所述母数据以所述容量阈值为单位分割成多个子数据。
示例性的,所述平均分割单元,用于:若所述母数据的数据量超过所述总阈值,将母数据分割成数据量大小均等的多个子数据,所述子数据的个数与节点服务器的个数相同。
示例性的,基于redis的数据存储装置还包括索引子数据确定单元,所述索引子数据确定单元用于根据各个子数据的位置信息,确定所述多个子数据中的一个为索引子数据,所述索引子数据至少记录所述索引子数据外的其余子数据的索引信息;具体的,将所述母数据起始位置或末尾位置对应的子数据确定为索引子数据。
示例性的,所述键确定单元120包索引键确定单元及普通键确定单元.所述索引键确定单元用于:将所述母数据的键确定为所述索引子数据的键;所述普通键确定单元用于:将所述母数据的键加上所述索引子数据以外的子数据对应的位置信息的标识,得到所述索引子数据以外的子数据的键。
在一些实施方式中,如图4所示,基于redis的数据存储装置还包括子数据读取单元210、索引读取单元220、获取判断单元230及拼接单元240。
子数据读取单元210,用于根据所述子数据的键从对应的节点服务器获取子数据,且所述子数据中至少有一个记录有至少另一子数据的索引信息;
索引读取单元220,用于根据所述至少另一子数据的索引信息,从对应的节点服务器获取至少另一子数据;
获取判断单元230,根据获取的子数据的键是否包括所述母数据中所有子数据的键,判断是否获取所述母数据的所有子数据;
拼接单元240,用于在判定获取所述母数据的所有子数据时,根据各个子数据的键将子数据拼接处理,得到所述母数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的方法、装置可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
示例性地,上述的方法、装置可以实现为一种计算机程序的形式,该计算机程序可以在如图5所示的计算机设备上运行。
请参阅图5,图5是本申请实施例提供的一种计算机设备的示意图。该计算机设备可以是服务器或终端。
如图5所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种基于redis的数据存储方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种基于redis的数据存储方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,该计算机设备的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一些实施方式中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值;根据各个子数据的位置信息,确定各个子数据的键,所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同;基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据;根据所述子数据的键从对应的节点服务器获取子数据。
在一些实施方式中,所述处理器用于运行存储在存储器中的计算机程序,以实现的步骤还包括:根据各个子数据的键将所述多个子数据存储到节点服务器中;根据所述至少另一子数据的索引信息,从对应的节点服务器获取至少另一子数据;根据获取的子数据的键是否包括所述母数据中所有子数据的键,判断是否获取所述母数据的所有子数据;在判定获取所述母数据的所有子数据时,根据各个子数据的键将子数据拼接处理,得到所述母数据。
示例性的,处理器用于实现所基于redis的数据存储方法时,实现:所述索引信息包括子数据存储时所对应的槽位。
示例性的,处理器用于实现所基于redis的数据存储方法时,实现:根据各个子数据的位置信息,确定所述多个子数据中的一个为索引子数据,所述索引子数据至少记录所述索引子数据外的其余子数据的索引信息。具体的,将所述母数据起始位置或末尾位置对应的子数据确定为索引子数据。
示例性的,处理器用于实现根据各个子数据的位置信息,确定各个子数据的键,所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同时,实现:将所述母数据的键确定为所述索引子数据的键,将所述母数据的键加上所述索引子数据以外的子数据对应的位置信息的标识,得到所述索引子数据以外的子数据的键。所述位置信息的标识可以为所述索引子数据以外的子数据按在母数据中的位置由前至后顺序排序所对应的序号。
示例性的,处理器用于实现基于redis的数据存储方法时,实现:为方便数据的管理和获取,其中至少一个子数据中增加所述多个子数据的总个数。具体的,在所述索引子数据中记录所述多个子数据的总个数。为进一步方便数据的管理、统一,还可以在所有子数据中均增加所述多个子数据的总个数;同时,所述索引子数据外的其余子数据,每一个均参照所述索引子数据,至少增加自身外的其余子数据的索引信息。
示例性的,处理器用于实现根据所述子数据的键从对应的节点服务器获取子数据,且所述子数据中至少有一个记录有至少另一子数据的索引信息时,实现:根据所述索引子数据的键从对应节点服务器获取索引子数据。
示例性的,处理器用于实现根据所述至少另一子数据的索引信息,从对应的节点服务器获取至少另一子数据时,实现:根据所述索引子数据的索引信息中,从对应的节点服务器至少获取所述索引子数据外的其余子数据;更具体的,可以根据所述索引子数据的索引信息中的所述槽位,通过并行连接对应的节点服务器从对应的节点服务器至少获取所述索引子数据外的其余子数据。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法,如:
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项基于redis的数据存储方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于redis的数据存储方法,其特征在于,包括:
将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值;
根据各个子数据的位置信息,确定各个子数据的键;所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同;
基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据;
根据各个子数据的键将所述多个子数据存储到节点服务器中。
2.根据权利要求1所述的基于redis的数据存储方法,其特征在于,还包括:根据所述子数据的键从对应的节点服务器获取子数据;
根据所述至少另一子数据的索引信息,从对应的节点服务器获取至少另一子数据;
根据获取的子数据的键是否包括所述母数据中所有子数据的键,判断是否获取所述母数据的所有子数据;
在判定获取所述母数据的所有子数据时,根据各个子数据的键将子数据拼接处理,得到所述母数据。
3.根据权利要求1所述的基于redis的数据存储方法,其特征在于,包括:
所述将所述母数据分割成多个子数据,包括:
计算所述容量阈值与节点服务器个数的乘积得到总阈值;
若所述母数据的数据量不超过所述总阈值,将所述母数据以所述容量阈值为单位分割成多个子数据;
若所述母数据的数据量超过所述总阈值,将母数据分割成数据量大小均等的多个子数据,所述子数据的个数与节点服务器的个数相同。
4.根据权利要求1-3中任一项所述的基于redis的数据存储方法,其特征在于,所述方法还包括:
根据各个子数据的位置信息,确定所述多个子数据中的一个为索引子数据,所述索引子数据至少记录所述索引子数据外的其余子数据的索引信息。
5.根据权利要求4所述的基于redis的数据存储方法,其特征在于,所述根据各个子数据的位置信息,确定所述多个子数据中的一个为索引子数据,包括:
将所述母数据起始位置或末尾位置对应的子数据确定为索引子数据;
所述根据各个子数据的位置信息,确定各个子数据的键,包括:
将所述母数据的键确定为所述索引子数据的键;
将所述母数据的键加上所述索引子数据以外的子数据对应的位置信息的标识,得到所述索引子数据以外的子数据的键。
6.根据权利要求1-3中任一项所述的基于redis的数据存储方法,其特征在于,所述方法还包括:
在其中至少一个子数据中增加所述多个子数据的总个数。
7.根据权利要求4所述的基于redis的数据存储方法,其特征在于,所述索引信息包括子数据存储时所对应的槽位;
所述根据所述子数据的键从对应的节点服务器获取子数据,根据所述至少另一子数据的索引信息,从对应的节点服务器获取至少另一子数据,包括:根据所述索引子数据的键从对应节点服务器获取索引子数据;根据所述索引子数据的索引信息中的所述槽位,通过并行连接对应的节点服务器从对应的节点服务器至少获取所述索引子数据外的其余子数据。
8.一种基于redis的数据存储装置,其特征在于,包括:
数据分割单元,用于将母数据分割成多个子数据,所述母数据是redis系统中待存储的数据,且所述母数据的数据量大于预设的容量阈值;
键确定单元,根据各个子数据的位置信息,确定各个子数据的键;所述位置信息用于指示各个子数据在母数据中的位置,不同位置信息对应的子数据的键不同;
索引记录单元,用于基于预设的索引规则,在每个子数据中至少记录另一子数据的索引信息,所述索引信息用于获取母数据;
子数据存储单元,用于根据各个子数据的键将所述多个子数据存储到节点服务器中。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述的计算机程序并在执行所述的计算机程序时实现如权利要求1-10任一项所述的基于redis的数据存储方法。
10.一种计算机可读存储介质,所述计算机的可读存储介质存储有计算机程序,其特征在于,若所述计算机程序被处理器执行,实现如权利要求1-10中任一项所述的基于redis的数据存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011584745.9A CN112632077A (zh) | 2020-12-28 | 2020-12-28 | 基于redis的数据存储方法、装置、设备及存储介质 |
PCT/CN2021/125268 WO2022142616A1 (zh) | 2020-12-28 | 2021-10-21 | 基于redis的数据存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011584745.9A CN112632077A (zh) | 2020-12-28 | 2020-12-28 | 基于redis的数据存储方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632077A true CN112632077A (zh) | 2021-04-09 |
Family
ID=75285747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011584745.9A Pending CN112632077A (zh) | 2020-12-28 | 2020-12-28 | 基于redis的数据存储方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112632077A (zh) |
WO (1) | WO2022142616A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988909A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988761A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988912A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988910A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988908A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
WO2022142616A1 (zh) * | 2020-12-28 | 2022-07-07 | 深圳壹账通智能科技有限公司 | 基于redis的数据存储方法、装置、设备及存储介质 |
CN114877943A (zh) * | 2022-05-19 | 2022-08-09 | 生态环境部华南环境科学研究所(生态环境部生态环境应急研究所) | 一种基于区块链的生态环境监测装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682042B (zh) * | 2015-11-11 | 2019-11-22 | 杭州海康威视数字技术股份有限公司 | 一种关系数据缓存及查询方法及装置 |
US10496283B2 (en) * | 2016-01-22 | 2019-12-03 | Suraj Prabhakar WAGHULDE | Adaptive prefix tree based order partitioned data storage system |
CN109656474B (zh) * | 2018-11-15 | 2022-02-15 | 金蝶软件(中国)有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN110737658B (zh) * | 2019-09-06 | 2020-12-18 | 平安国际智慧城市科技股份有限公司 | 数据分片存储方法、装置、终端及可读存储介质 |
CN112632077A (zh) * | 2020-12-28 | 2021-04-09 | 深圳壹账通智能科技有限公司 | 基于redis的数据存储方法、装置、设备及存储介质 |
-
2020
- 2020-12-28 CN CN202011584745.9A patent/CN112632077A/zh active Pending
-
2021
- 2021-10-21 WO PCT/CN2021/125268 patent/WO2022142616A1/zh active Application Filing
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022142616A1 (zh) * | 2020-12-28 | 2022-07-07 | 深圳壹账通智能科技有限公司 | 基于redis的数据存储方法、装置、设备及存储介质 |
CN112988909A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988761A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988912A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988910A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988908A (zh) * | 2021-05-07 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988909B (zh) * | 2021-05-07 | 2021-09-28 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988912B (zh) * | 2021-05-07 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN114153848A (zh) * | 2021-05-07 | 2022-03-08 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN112988761B (zh) * | 2021-05-07 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 区块链数据存储方法及装置、电子设备 |
CN114877943A (zh) * | 2022-05-19 | 2022-08-09 | 生态环境部华南环境科学研究所(生态环境部生态环境应急研究所) | 一种基于区块链的生态环境监测装置 |
CN114877943B (zh) * | 2022-05-19 | 2024-04-09 | 生态环境部华南环境科学研究所(生态环境部生态环境应急研究所) | 一种基于区块链的生态环境监测装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022142616A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112632077A (zh) | 基于redis的数据存储方法、装置、设备及存储介质 | |
CN112153085B (zh) | 一种数据处理方法、节点及区块链系统 | |
Buzen | Analysis of system bottlenecks using a queueing network model | |
CN107273195A (zh) | 一种大数据的批处理方法、装置及计算机系统 | |
US10606657B2 (en) | Methods and modules relating to allocation of host machines | |
CN111767143A (zh) | 交易数据处理方法、装置、设备及系统 | |
Aghajani et al. | The PDE method for the analysis of randomized load balancing networks | |
CN111611249A (zh) | 数据管理方法、装置、设备及存储介质 | |
CN111966631A (zh) | 一种可快速分发的镜像文件生成方法、系统、设备和介质 | |
CN109460406A (zh) | 一种数据处理方法及装置 | |
CN112925792B (zh) | 数据存储控制方法、装置、计算设备及介质 | |
US11048557B2 (en) | Methods and modules relating to allocation of host machines | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
WO2021174882A1 (zh) | 数据分片校验方法、装置、计算机设备及可读存储介质 | |
CN111737206B (zh) | 一种文件重删处理方法、系统、终端及存储介质 | |
CN114218303B (zh) | 一种交易数据的处理系统、处理方法、介质和设备 | |
CN112764935B (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN110297842B (zh) | 一种数据比对方法、装置、终端和存储介质 | |
CN115439118B (zh) | 一种基于区块链的数字存证管理方法 | |
CN110324236B (zh) | 事件记录的分享方法、装置和计算机设备 | |
CN110134691B (zh) | 数据校验方法、装置、设备和介质 | |
US20220100739A1 (en) | Distributed sequential transactional database selection | |
CN113392110A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN114756626A (zh) | 数据处理方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40050564 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |