存储数据的方法和装置、以及读取数据的方法和装置与流程

文档序号:23728687发布日期:2021-01-26 18:49阅读:73来源:国知局
存储数据的方法和装置、以及读取数据的方法和装置与流程

[0001]
本申请涉及数据处理领域,具体涉及智能搜索领域和云存储领域,更具体地涉及一种存储数据的方法和装置、以及一种读取数据的方法和装置。


背景技术:

[0002]
随着互联网的发展,互联网数据呈指数型增长。对于以列表形式存储的数据,由于数据量大,会使得列表过长。在列表过长的情况下,在对列表中数据进行更新、读取和删除等操作时的效率较低,列表管理压力大。尤其是在需要依据搜索条件查找数据时,会使得数据读取效率更低。


技术实现要素:

[0003]
提供了一种用于便于管理和搜索数据的存储数据的方法和装置、以及读取数据的方法和装置。
[0004]
根据第一方面,提供了一种存储数据的方法,包括:获取第一待存储数据和第一待存储数据的属性信息;根据第一待存储数据的属性信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定备选存储分区;其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息;根据备选存储分区的当前存储信息,确定第二存储空间中的第一目标存储分区;以及将第一待存储数据存入第一目标存储分区。
[0005]
根据第二方面,提供了一种读取数据的方法,包括:获取待读取数据的读取信息,读取信息包括待读取数据的属性信息;根据读取信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定第二目标存储分区;其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息;以及从第二目标存储分区中读取与待读取数据的属性信息匹配的数据,得到待读取数据。
[0006]
根据第三方面,提供了一种存储数据的装置,包括:数据获取模块,用于获取第一待存储数据和第一待存储数据的属性信息;备选分区确定模块,用于根据第一待存储数据的属性信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定备选存储分区;其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息;目标分区确定模块,用于根据备选存储分区的当前存储信息,确定第二存储空间中的第一目标存储分区;以及数据存储模块,用于将第一待存储数据存入第一目标存储分区。
[0007]
根据第四方面,提供了一种读取数据的装置,包括:读取信息获取模块,用于获取待读取数据的读取信息,该读取信息包括待读取数据的属性信息;第二目标分区确定模块,用于根据读取信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定第二目标存储分区;其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息;以及数据读取模块,用于从第二目标存储分区中读
取与待读取数据的属性信息匹配的数据,得到待读取数据。
[0008]
根据第五方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请提供的存储数据的方法,和/或本申请提供的读取数据的方法。
[0009]
根据第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本申请提供的存储数据的方法,和/或本申请提供的读取数据的方法。
[0010]
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0011]
附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0012]
图1是根据本申请实施例的存储数据的方法和装置,以及读取数据的方法和装置的应用场景示意图;
[0013]
图2是根据本申请实施例的存储数据的方法的流程示意图;
[0014]
图3是根据本申请实施例的读取数据的方法的流程示意图;
[0015]
图4是根据本申请实施例的存储数据的原理示意图;
[0016]
图5是根据本申请实施例的第一存储空间中表示映射关系的数据结构图;
[0017]
图6是根据本申请实施例的确定第二目标存储分区的原理图;
[0018]
图7是根据本申请实施例的存储数据的装置的结构框图;
[0019]
图8是根据本申请实施例的读取数据的装置的结构框图;以及
[0020]
图9是根据本申请实施例的适于执行存储数据和/或读取数据的方法的电子设备的框图。
具体实施方式
[0021]
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0022]
本申请提供了一种存储数据的方法。该方法可以先获取第一待存储数据和第一待存储数据的属性信息。随后根据第一待存储数据的属性信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定备选存储分区。之后根据备选存储分区的当前存储信息,确定第二存储空间中的第一目标存储分区。最终将第一待存储数据存入第一目标存储分区。其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息。
[0023]
本申请还基于存储数据的方法,提供了一种读取数据的方法。该读取数据的方法先获取待读取数据的读取信息,读取信息包括待读取数据的属性信息。随后根据读取信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定第二目
标存储分区。最后,从第二目标存储分区中读取与待读取数据的属性信息匹配的数据,得到待读取数据。
[0024]
以下将结合图1对本申请提供的存储数据的方法和装置、以及读取数据的方法和装置的应用场景进行描述。
[0025]
图1是根据本申请实施例的存储数据的方法和装置、以及读取数据的方法和装置的应用场景图。
[0026]
如图1所示,该实施例的应用场景100例如可以包括终端设备110、服务器120、第一数据库130和第二数据库140。其中,终端设备110可以通过网络与服务器120通信,服务器120可以通过网络访问第一数据库130和第二数据库140,以从第一数据库130和第二数据库140中读取数据或向第一数据库130和第二数据库140中存储数据。
[0027]
根据本申请的实施例,终端设备110例如可以为具有显示屏的各种电子设备,包括但不限于智能可穿戴设备、智能手机、平板电脑、膝上型便携计算机和台式计算机等等。该终端设备110例如可以安装有客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、社交平台软件等(仅为示例)。
[0028]
根据本申请的实施例,服务器120可以是提供各种服务的服务器,例如对终端设备110中的客户端应用的运行提供支持的后台管理服务器(仅为示例)。服务器120例如可以为应用程序服务器、分布式系统的服务器,或者是结合了区块链的服务器。或者,服务器还可以为虚拟服务器或云服务器等。
[0029]
根据本申请的实施例,终端设备110中的客户端应用例如可以将响应于用户操作产生的数据发送给服务器120,由服务器120存储至第一数据库130或第二数据库140中。服务器还可以在终端设备110响应于用户操作发送获取请求时,从第一数据库130或第二数据库140中读取数据并将读取的数据反馈给终端设备110的客户端应用。
[0030]
在一实施例中,第一数据库130和第二数据库140可以为不同类型的数据库。例如,第一数据库130为关系型数据库,第二数据库140为非关系型数据库。在终端设备110的客户端应用产生的数据数目较大时,可以将数据分块存储至非关系型数据库的存储分区中,将存储的数据与存储分区之间的映射关系存储至关系型数据库中。从而在读取数据时,可以根据映射关系定位到待读取数据所在的存储分区,并从所在的存储分区获取数据。通过该方式,在数据量较大时,可以响应于用户的搜索,快速读取到用户搜索的数据,从而提高用户体验。
[0031]
在一实施例中,第一数据库130和第二数据库140中的至少一个可以为云端存储空间。通过终端设备和服务器的交互,可以实现对云端存储空间中存储数据的智能搜索。
[0032]
需要说明的是,本申请实施例提供的存储数据的方法和读取数据的方法一般可以由服务器120执行。相应地,本申请实施例提供的存储数据的装置和读取数据的装置一般可以设置在服务器120中。
[0033]
应该理解,图1中的终端设备、服务器、第一数据库和第二数据库的类型仅仅是示意性的。根据实现需要,可以具有任意类型的终端设备、服务器、第一数据库和第二数据库。
[0034]
以下将结合图1描述的应用场景,通过图2~图6对本申请实施例提供的存储数据的方法和读取数据的方法进行详细描述。
[0035]
图2是根据本申请实施例的存储数据的方法的流程示意图。
[0036]
如图2所示,该实施例的存储数据的方法200包括操作s210、操作s230、操作s250和操作s270,该存储数据的方法可以由前述的服务器执行。
[0037]
在操作s210,获取第一待存储数据和第一待存储数据的属性信息。
[0038]
根据本申请的实施例,第一待存储数据可以为前述的终端设备响应于用户操作生成的待存储数据。该待存储数据可以由终端设备发送给服务器,以供服务器将待存储数据存入数据库中。
[0039]
示例性地,终端设备可以响应于用户对社交平台展示页面中第一目标控件的选中操作,将第一目标控件所针对的对象的标识作为第一待存储数据,以社交平台登录的用户账户的标识作为第一待存储数据的属性信息。随后将第一待存储数据和第一待存储数据的属性信息发送给服务器。其中,在不同的客户端应用中,第一目标控件可以根据实际需求进行设定。例如,对于论坛、微博等社交平台类应用,第一目标控件例如可以为“关注”控件、“收藏”控件等。相应地,对象的标识例如可以为“关注”控件所针对的账户的标识、“收藏”控件所针对的文本的标识等。例如,对于购物类应用,第一目标控件例如可以为“收藏”控件、“加入购物车”控件等。相应地,对象的标识例如可以为该第一目标控件所针对的物品的标识等。
[0040]
在一实施例中,第一待存储数据的属性信息例如还可以包括第一目标控件所针对的对象的属性。例如,若对象为物品,则属性包括物品的类别、物品的颜色、物品的大小、物品的价格等。若对象为用户账户,则属性包括用户账户所对应的用户的性别、年龄、身高、兴趣爱好等。可以理解的是,第一待存储数据可以根据实际需求具有任意维度的属性信息,本申请对此不做限定。
[0041]
在操作s230,根据第一待存储数据的属性信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定备选存储分区。
[0042]
根据本申请的实施例,映射关系指示索引值与第二存储空间中存储分区之间的关系。索引值指示数据的属性信息,以根据操作s210获取的第一待存储数据的属性信息来确定具有对应映射关系的存储分区。
[0043]
示例性地,第一存储空间中可以存储有至少一个映射关系。索引值可以为用户账户的标识,第二存储空间中具有至少一个用于存储针对用户账户的数据存储分区。操作s230可以是先确定以客户端应用所登录用户账户的标识为索引值的映射关系,然后确定该映射关系所指示的存储分区为备选存储分区。
[0044]
示例性地,第一存储空间中可以还未存储映射关系,或未存储与第一待存储数据的属性信息具有映射关系的存储分区。此种情况下,可以将第二存储空间中当前存储信息为空的存储分区作为备选存储分区。
[0045]
示例性地,存储分区的存储信息例如可以包括以下至少之一:存储分区已存储数据所占的空间大小、存储分区已存储数据的数目、存储分区已存储数据所占的空间相对于存储分区的总空间的比例等。根据存储分区的当前存储信息,可以确定该存储分区是否为空。
[0046]
示例性地,第一存储空间例如可以为前述的关系型数据库,第二存储空间例如可以为前述的非关系型数据库。关系型数据库例如可以为瑞典mysql ab公司开发的mysql关系型数据库、甲骨文公司开发的oracle关系数据库、微软发布的microsoft office access
关系数据库等。非关系型数据库例如可以为键值存储数据库、列存储数据库、文档性数据库或图形数据库等。该非关系型数据库的类型可以根据待存储数据的具体类型来设定。
[0047]
在操作s250,根据备选存储分区的当前存储信息,确定第二存储空间中的第一目标存储分区。
[0048]
根据本申请的实施例,该操作s250可以通过根据备选存储分区的当前存储信息,确定备选存储分区是否还有剩余存储空间。若有剩余存储空间,则确定备选存储分区为第一目标存储分区。若没有剩余存储空间,则确定当前存储信息为空的存储分区为第一目标存储分区。
[0049]
根据本申请的实施例,各存储分区之间可以具有相同大小的存储空间,或者,各存储分区之间可以存储相同数目的数据。操作s250例如还可以根据备选存储分区的当前存储信息,确定备选存储分区存储的数据数目是否达到预设数目。若未达到预设数目,则确定备选存储分区为第一目标存储分区。若达到预设数目,则确定当前存储信息为空的存储分区为第一目标存储分区。
[0050]
示例性地,在备选存储分区没有剩余存储空间,或备选存储分区存储的数据数目达到预设数目的情况下,例如可以确定与备选存储分区相邻且当前存储信息为空的存储分区为第一目标存储分区。从而可以使得第二存储空间中已存储的数据在第二存储空间中按时间顺序依次存储。
[0051]
在操作s270,将第一待存储数据存入第一目标存储分区。
[0052]
根据本申请的实施例,操作s270可以采用与第二存储空间的类型相匹配的方法进行数据存储。例如,若第二存储空间为键值存储数据库,可以采用键值对的方式将数据存入第一目标存储分区。其中,键的取值唯一指示第一目标存储分区。相应地,在第一存储空间中存储的映射关系可以为索引值与键的取值之间的关系。可以理解的是,该采用键值对的方式存储数据仅作为示例以利于理解本申请,本申请对此不作限定。
[0053]
示例性地,在第一目标存储分区中已存储有数据的情况下,可以通过将第一待存储数据添加至键值对的值的取值处,实现对第一待存储数据的存储。例如,键值对中值的取值可以为列表数据,通过将第一待存储数据作为一行数据添加至列表数据的末尾,可以实现对第一待存储数据的存储。
[0054]
根据本申请的实施例,在将第一待存储数据存入第一目标存储分区时,例如还可以将该第一待存储数据的属性信息作为标签添加至第一待存储数据。从而在读取数据时,可以根据数据添加的标签,从第二存储空间中选择性地读取属性信息满足需求的数据。示例性地,作为标签的属性信息可以为前述第一目标控件所针对的对象的属性。
[0055]
根据本申请的实施例,通过在存储数据时根据第一存储空间中的映射关系确定备选存储分区,可以达到将第二存储空间划分为多个存储分区,并将数据进行分块存储的效果。如此,在读取数据时,可以先根据映射关系确定数据所在的存储分区,并从存储分区读取数据。相较于现有技术中直接将数据存入数据库的技术方案,可以有效减少数据读取时所需的读取时间,提高用户体验。
[0056]
根据本申请的实施例,在确定当前存储信息为空的存储分区为备选存储分区,或确定当前存储信息为空的存储分区为第一目标存储分区的情况下,该实施例的存储数据的方法例如还可以先构建第一待存储数据的属性信息与选定的存储信息为空的存储分区之
间的映射关系。随后将构建的映射关系存入第一存储空间中。如此,在终端设备产生与第一待存储数据的属性信息相同的待存储数据时,即可直接经由服务器存入第一待存储数据所在的存储分区。
[0057]
根据本申请的实施例,基于图2描述的存储数据的方法,本申请还提供了一种与存储数据的方法相关的读取数据的方法。
[0058]
图3是根据本申请实施例的读取数据的方法的流程示意图。
[0059]
如图3所示,该实施例的读取数据的方法300包括操作s320、操作s340和操作s360。该读取数据的方法可以由前述的服务器执行。
[0060]
在操作s320,获取待读取数据的读取信息,该读取信息包括待读取数据的属性信息。
[0061]
根据本申请的实施例,读取信息可以由终端设备响应于用户输入关键词信息,并对客户端应用展示页面中第二目标控件的选中操作生成。读取信息可以包括用户账户的标识、用户输入的关键词信息。其中,第二目标控件例如可以为“搜索”控件、“查询”控件或“查找”控件等。
[0062]
根据本申请的实施例,读取信息也可以由终端设备响应于用户对第二目标控件的选中操作生成。读取信息可以包括用户账户的标识、用户选中操作所针对的第二目标控件指示的信息。其中,第二目标控件例如可以为客户端应用展示的指示数据类别的控件,例如可以为“娱乐”控件、“新闻”控件等。
[0063]
根据本申请的实施例,读取信息也可以由终端设备响应于用户对第二目标控件的选中操作生成。在一实施例中,读取信息可以包括用户账户的标识,第二目标控件例如可以为“关注”控件、“粉丝”控件或“收藏”控件等。
[0064]
可以理解的是,上述获取的读取信息和第二目标控件仅作为示例以利于理解本申请,本申请对此不做限定。根据实际需求和客户端应用的功能,终端设备可以通过响应于用户以获取数据为意图的任意操作而生成读取信息。
[0065]
在操作s340,根据读取信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定第二目标存储分区。
[0066]
根据本申请的实施例,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息。该映射关系与前文描述的映射关系类似,在此不再赘述。
[0067]
根据本申请的实施例,操作s340可以先确定存储于第一存储空间的映射关系中索引值包括读取信息的目标映射关系。随后确定目标映射关系中指示的存储分区为第二目标存储分区。
[0068]
在操作s360,从第二目标存储分区中读取与待读取数据的属性信息匹配的数据,得到待读取数据。
[0069]
根据本申请的实施例,可以读取第二目标存储分区中存储的所有数据,得到待读取数据。或者,也可以根据实际需求,读取第二目标存储分区中,按存入顺序排序的多条数据中位于末尾的预设数目条数据,得到待读取数据。
[0070]
根据本申请的实施例,在读取信息包括用户输入的关键词信息的情况下,该实施例可以从第二目标存储分区中,读取添加的标签与关键词信息匹配的数据,得到待读取数据。其中,与关键词信息匹配的标签可以为:与关键词信息相同的标签,或表示的含义与关
键词信息相近的标签。
[0071]
本申请实施例通过根据映射关系确定备选存储分区,并从备选存储分区中读取数据。相较于现有技术中从整个数据库中读取数据的方法,可以减少访问的存储分区的量,提高数据读取效率。从而可以提高响应用户操作的效率,提高用户体验。
[0072]
根据本申请的实施例,在得到待读取数据后,服务器可以将该待读取数据反馈给终端设备,并由客户端应用展示该待读取数据,从而使得用户浏览自己查找的数据。
[0073]
图4是根据本申请实施例的存储数据的原理示意图。
[0074]
如图4所示,该实施例400中,第一存储空间410中已存储的映射关系例如可以有(k-1)个,第二存储空间420中已存储有数据的存储分区例如可以有(k-1)个。(k-1)个映射关系分别为第一索引与第一存储分区421之间的映射关系411、第二索引与第二存储分区422之间的映射关系412、第三索引与第三存储分区423之间的映射关系413、...、和第(k-1)索引与第(k-1)存储分区之间的映射关系。
[0075]
根据本申请的实施例,存储数据的方法在将多个待存储数据存入第二存储空间后,例如还可以确定第二存储空间存储的数据中属于相同类别的数据,并将该属于相同类别的数据作为第二数据。随后将第二存储数据存入第二存储空间中当前存储信息为空的任一存储分区中。最后构建该任一存储分区与相同类别之间的第一映射关系,并将第一映射关系存入第一存储空间中。
[0076]
示例性地,在将待存储数据存入第二存储空间时,例如可以同时将各待存储数据的属性信息作为数据的标签存入第二存储空间。终端设备例如可以响应于用户增加数据类别的操作,根据存入第二存储空间的各数据的标签,确定属于该增加的数据类别的数据,作为第二待存储数据。
[0077]
示例性地,终端设备可以响应于用户增加数据类别的操作,向用户展示第二存储空间中存储的所有数据。随后响应于用户对该所有数据中部分数据的选中操作,确定该部分数据为属于增加的数据类别的数据,得到第二待存储数据。
[0078]
在一实施例中,如图4所示,第一存储分区421中可以存储有多条数据a1、a2、a3、a4...,第二存储分区422中可以存储有多条数据b1、b2、b3、b4...,第三存储分区423中可以存储有多条数据c1、c2、c3、c4...,以此类推。通过前述示例确定的第二待存储数据例如可以为由第一存储分区421中的数据a2、第三存储分区423中的数据c1、c4等组成的数据集合430,该数据集合430中的数据可以通过读取并复制得到。该实施例可以将该数据集合430中的数据存入第二存储分区中的第k存储分区424中。该第k存储分区424在存入数据集合中的数据之前,存储信息为空。该第k存储分区424例如可以为与存储分区(k-1)相邻的存储分区,以便于对第二存储空间进行管理。在将数据集合430中的数据存储后,可以以前述增加的数据类别作为数据集合430中数据的相同类别440,建立该类别440与第k数据分区424的分区标识450之间的映射关系。最后将该映射关系作为新增的映射关系存入第一存储空间410中,作为第k索引与第k分区之间的映射关系414。
[0079]
示例性地,在将数据集合430中的数据存入第k存储分区424时,可以采用键值对的方式进行存储。其中,键的取值可以为随机生成的数值,也可以为第k存储分区424在第二存储空间中的排序序号,也可以为数据集合430中数据的类别440。值的取值为数据集合430中数据组成的数据列表。
[0080]
示例性地,在构建映射关系时,例如可以采用键的取值作为存储分区的分区标识450,或者可以以存储分区的起始地址作为分区标识450,或者也可以以存储分区在第二存储空间中的排序序号作为分区标识。
[0081]
本申请实施例通过将属于相同类别的数据以冗余存储的方式存入非关系型数据库的同一存储分区中,并将存入的存储分区与类别之间的映射关系存入关系型数据库中,可以便于以类别为搜索关键词定位到对应映射的存储分区中。相较于现有技术中需要从整个数据库中搜索与搜索关键词匹配的数据的方式,本申请实施例可以有效提高数据的读取搜索效率,提高用户体验。
[0082]
基于该实施例的存储数据的方法,在读取数据时,获取的待读取数据的属性信息包括有待读取数据的类别,且第一存储空间中存储的映射关系中的索引值可以指示数据的类别。
[0083]
根据本申请的实施例,前文描述的读取数据的方法在确定第二目标存储分区时,可以先根据与第二存储空间中的至少一个存储分区具有映射关系的至少一个索引值指示的类别,确定该至少一个索引值中指示的类别与待读取数据的类别相同的索引值。最后将与该确定的索引值具有映射关系的存储分区作为第二目标存储分区。
[0084]
示例性地,前文描述的待读取数据的属性信息例如可以包括类别440,该类别440例如可以为娱乐、新闻、健身、体育等类别中的任意一个。从第一存储空间存储的映射关系中,可以确定与第k分区具有映射关系的第k个索引值指示类别440。最后确定第k分区与第二目标存储分区。可以理解的是,该实施例的类别仅作为示例以利于理解本申请,本申请可以根据实际需求设定任意的类别,该类别例如可以与年龄、性别、兴趣爱好等相关。
[0085]
综上实施例,本申请通过按照图4描述的原理存储第二待存储数据,在读取数据可以支持用户输入搜索关键词,并根据该搜索关键词快速定位到待读取数据所在的存储分区,从而便于提高数据读取效率,提高用户搜索体验。
[0086]
根据本申请的实施例,在将数据存入第一目标存储分区时,该实施例可以先压缩待存储数据,得到压缩后数据。最终将压缩后数据存入第一目标存储分区。通过该方式,可以在需要存入第二存储空间的数据数目较多时,有效利用第二存储空间,提高第二存储空间存储的数据数目。
[0087]
示例性地,在对待存储数据进行压缩时,例如可以采用压缩算法将待存储数据编码为二进制码。压缩算法例如可以采用哈夫曼压缩算法等,该压缩算法可以根据实际需求来选择,本申请对此不作限定。
[0088]
根据本申请的实施例,在第二存储空间中各存储分区中的数据为压缩后数据时,前述从第二目标存储分区中读取数据时,可以先从第二目标存储分区中读取与待读取数据的属性信息匹配的压缩数据。随后解压读取的压缩数据,得到待读取数据。其中,解压压缩数据的算法可以采用与前文描述的压缩算法的处理过程的逆过程来实现。
[0089]
图5是根据本申请实施例中第一存储空间中表示映射关系的数据结构图。
[0090]
根据本申请的实施例,第一存储分区中可以存储有多条数据,每条数据可以指示一个前文描述的映射关系。
[0091]
根据本申请的实施例,存入第二存储空间中的数据按时间顺序生成并依次存入各存储分区。在第一存储分区存满后,才将数据存入与第一存储分区相邻的第二存储分区,以
此类推。在服务器获取到新的待存储数据时,可以确定备选存储分区为存储数据的生成时间较晚的存储分区。
[0092]
根据本申请的实施例,如图5所示,该实施例中,第一存储分区存储的每条数据500可以包括生成时间510和分区标识520。该每条数据指示的映射关系为生成时间与存储分区之间的映射关系,即生成时间可以作为索引值。其中,在将数据依次存入第二存储空间各存储分区的情况下,若第二存储空间中存储有数据的存储分区为至少一个,可以在确定备选存储分区时,根据与至少一个存储分区具有映射关系的至少一个索引值指示的生成时间,确定至少一个存储分区中的一个为备选存储分区。
[0093]
示例性地,如图5所示,生成时间510例如可以为存储分区中存储的首条数据的生成时间,作为起始时间511。在确定至少一个存储分区中的一个为备选存储分区时,可以先确定与指示的生成时间较晚的索引值具有映射关系的存储分区。随后将该确定的存储分区作为备选存储分区,从而使得数据按生成时间自先至后的存入第二存储空间。可以理解的是,生成时间也可以为存储分区中存储的最后一条数据的生成时间,或者也可以为存储分区中按顺序排列的数据中任意位置数据的生成时间。
[0094]
示例性地,各存储分区中允许存储的数据数目例如可以近似相等。例如,设定每个存储分区可以存储n条数据(其中,n为自然数)。其中,每条数据为服务器在同一时刻接收到的终端设备发送的所有数据。如图5所示,该实施例中的生成时间510例如还可以为存储分区存储的第n条数据的生成时间,作为终止时间512。在存储分区中存入的数据数目小于n的情况下,该实施例可以将终止时间设定为预设值。该实施例中在确定备选存储分区时,可以先确定至少一个索引值中指示的生成时间为预设值的第一索引值,最后确定与第一索引值具有映射关系的存储分区为备选存储分区。例如,可以先确定第一存储空间的多条数据中终止时间为预设值的数据,随后将该确定的数据中的分区标识所指示的存储分区为备选存储分区。可以理解的是,在存储分区存储的数据条数大于n时,终止时间为存储分区中最后一条数据的生成时间。
[0095]
根据本申请的实施例,在各存储分区中允许存储的数据数目近似相等、且设定每个存储分区存储的数据数目近似为n的情况下,在确定了备选存储分区后,根据备选存储分区的当前存储信息确定第一目标存储分区时,可以以备选存储分区存储的数据数目为依据。例如,可以在备选存储分区存储的数据数目达到预设数目n的情况下,还可以根据第一待存储数据的生成时间确定第一目标存储分区。
[0096]
示例性地,在设定了各存储分区在保证存储的数据数目近似为n的前提下,还可以使得在相同时段内生成的数据存入同一存储分区中,以此来提高数据管理的便利性。例如,若备选存储分区存储的数据数目等于n,但服务器接收的待存储数据的生成时间与备选存储分区所存储数据的生成时间均属于1月1日~1月31日之间的时段,则将备选存储分区作为第一目标存储分区,将服务器接收的待存储数据存入备选存储分区。
[0097]
示例性地,在设定了各存储分区在保证存储的数据数目近似为n的前提下,还可以使得生成时间相近的数据存入同一存储分区中,以此来提高数据管理的便利性。例如,若备选存储分区存储的数据数目大于等于n,且前文描述的索引值指示存入具有对应映射关系的存储分区的最后一条数据的生成时间的情况下,可以先确定第一待存储数据的生成时间与索引值指示的生成时间之间的时间差是否小于预设时间差。在时间差小于预设时间差的
情况下,确定备选存储分区为第一目标存储分区。在时间差大于等于预设时间差的情况下,确定与备选存储分区相邻且当前存储信息为空的存储分区为目标数据分区。最终将第一待存储数据存入第一目标存储分区中。
[0098]
根据本申请的实施例,在第二存储分区中存储有针对客户端应用登录的多个用户账户的数据时,该实施例存储于第一存储空间的每条数据还可以包括账户标识530。通过该方式,可以在读取数据或存储数据时,定位到针对各用户账户的数据存储位置,便于对数据进行管理。
[0099]
根据本申请的实施例,在建立数据的类别与存储分区之间的映射关系的情况下,图5所示的数据结构中除了生成时间510、分区标识520、账户标识530外,还可以包括数据的类别名。
[0100]
根据本申请的实施例,在第一存储空间为mysql数据库的存储空间时,第一存储空间中存储的一条数据可以由一条sql语句表示。
[0101]
根据本申请的实施例,通过在第一存储空间中存储的每条数据中加入起始时间511和/或终止时间512,可以便于在以生成时间为搜索条件时,快速地定位到待读取数据所在的存储分区。
[0102]
以下将结合图6对每条数据中有起始时间和/或终止时间时,确定待读取数据所在的存储分区的原理进行描述。
[0103]
图6是根据本申请实施例的确定第二目标存储分区的原理图。
[0104]
根据本申请的实施例,在用户输入的搜索关键词包括数据的生成时段的情况下,前文描述的待读取数据的属性信息包括待读取数据的生成时间所在时段。相应地,前文描述的确定第二目标存储分区可以包括:根据与至少一个存储分区具有映射关系的至少一个索引值,确定指示的起始时间和终止时间之间的时段与待读取数据的生成时间所在时段相交叉的索引值。随后确定与该确定的索引值具有映射关系的存储分区为第二目标存储分区。
[0105]
示例性地,如图6所示的实施例600中,第二存储空间中具有3个存储分区,第一存储空间中存储的针对第一个存储分区b1的起始时间为t1、终止时间为t2,针对第二个存储分区b2的起始时间为t2、终止时间为t3,针对第三个存储分区b3的起始时间为t3、终止时间为t4。在待读取数据的生成时间所在时段t为时段t5~t6,且t5介于t1与t2之间,且t6介于t2与t3之间的情况下,确定第二目标存储分区为存储分区b1和存储分区b2。该实施例中,数据的属性信息例如还可以包括数据的生成时间,且该数据的属性信息可以作为数据的标签同时存入存储分区中。
[0106]
示例性地,对于第二存储空间中存入数据的生成时间较晚的存储分区,若终止时间为预设值,且待读取数据的生成时间所在时段t包括晚于第一存储空间中的最大终止时间(除预设值外的最大终止时间)的时段时,则确定的第二目标存储分区包括取预设值的终止时间所针对的存储分区。相应地,读取与待读取数据的属性信息匹配的数据为:读取生成时间属于用户输入的搜索条件中时段的数据,得到待读取数据。
[0107]
根据本申请的实施例,在存入第二存储空间中的数据是按时间顺序生成并依次存入各存储分区、且读取信息由终端设备响应于用户对第二目标控件的选中操作生成的情况下,由于用户未输入搜索关键词,则可以向用户反馈最新存入第二存储空间中的若干条数
据,以此使得反馈给用户的数据为用户最近感兴趣的数据。此种情况下,可以先根据第一存储空间中存储的映射关系,确定与指示的生成时间最晚的索引值具有对应映射关系的存储分区,并将该存储分区作为第二目标存储分区。
[0108]
基于前文描述的存储数据的方法,本申请还提供了一种存储数据的装置。以下将结合图7对本申请提供的存储数据的装置进行描述。
[0109]
图7是根据本申请实施例的存储数据的装置的结构框图。
[0110]
如图7所示,该实施例的存储数据的装置700包括数据获取模块710、备选确定模块730、第一目标确定模块750和数据存储模块770。
[0111]
数据获取模块710用于获取第一待存储数据和第一待存储数据的属性信息。在一实施例中,数据获取模块710可以用于执行前文描述的操作s210,在此不再赘述。
[0112]
备选确定模块730用于根据第一待存储数据的属性信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定备选存储分区。其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息。在一实施例中,备选确定模块730可以用于执行前文描述的操作s230,在此不再赘述。
[0113]
第一目标确定模块750用于根据备选存储分区的当前存储信息,确定第二存储空间中的第一目标存储分区。在一实施例中,第一目标确定模块750可以用于执行前文描述的操作s250,在此不再赘述。
[0114]
数据存储模块770用于将第一待存储数据存入第一目标存储分区。在一实施例中,数据存储模块770可以用于执行前文描述的操作s270,在此不再赘述。
[0115]
基于前文描述的读取数据的方法,本申请还提供了一种读取数据的装置。以下将结合图8对本申请提供的读取数据的装置进行描述。
[0116]
图8是根据本申请实施例的读取数据的装置的结构框图。
[0117]
如图8所示,该实施例的读取数据的装置800包括信息获取模块820、第二目标确定模块840和数据读取模块860。
[0118]
信息获取模块820用于获取待读取数据的读取信息,读取信息包括待读取数据的属性信息。在一实施例中,信息获取模块820可以用于执行前文描述的操作s320,在此不再赘述。
[0119]
第二目标确定模块840用于根据读取信息和存储于第一存储空间中的映射关系,从第二存储空间的至少一个存储分区中确定第二目标存储分区;其中,映射关系指示索引值与第二存储空间中存储分区之间的关系,索引值指示数据的属性信息。在一实施例中,第二目标确定模块840可以用于执行前文描述的操作s340,在此不再赘述。
[0120]
数据读取模块860用于从第二目标存储分区中读取与待读取数据的属性信息匹配的数据,得到待读取数据。在一实施例中,数据读取模块860可以用于执行前文描述的操作s360,在此不再赘述。
[0121]
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。以下将结合图9对电子设备进行描述。
[0122]
如图9所示,是根据本申请实施例的适于执行存储数据和/或读取数据的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子
设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
[0123]
如图9所示,该电子设备900包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
[0124]
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的存储数据的方法和/或读取数据的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的存储数据的方法和/或读取数据的方法。
[0125]
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的存储数据的方法和/或读取数据的方法对应的程序指令/模块(例如,附图7所示的数据获取模块710、备选确定模块730、第一目标确定模块750和数据存储模块770,或者,附图8所示的信息获取模块820、第二目标确定模块840和数据读取模块860)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的存储数据的方法和/或读取数据的方法。
[0126]
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据适于执行存储数据的方法和/或读取数据的方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至适于执行存储数据的方法和/或读取数据的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0127]
执行存储数据的方法和/或读取数据的方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
[0128]
输入装置903可接收输入的数字或字符信息,以及产生与执行存储数据的方法和/或读取数据的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0129]
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0130]
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0131]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0132]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0133]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0134]
根据本申请实施例的技术方案,通过在存储数据时根据第一存储空间中的映射关系确定备选存储分区,可以达到将第二存储空间划分为多个存储分区,并将数据分区存储的效果。如此,在读取数据时,可以先根据映射关系确定数据所在的存储分区,并从存储分区读取数据。相较于现有技术中直接将数据存入数据库的技术方案,可以有效减少数据读取时所需的读取时间,提高用户体验。
[0135]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0136]
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明
白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1