CN105141672B - 一种数据存储方法、装置及*** - Google Patents
一种数据存储方法、装置及*** Download PDFInfo
- Publication number
- CN105141672B CN105141672B CN201510482395.8A CN201510482395A CN105141672B CN 105141672 B CN105141672 B CN 105141672B CN 201510482395 A CN201510482395 A CN 201510482395A CN 105141672 B CN105141672 B CN 105141672B
- Authority
- CN
- China
- Prior art keywords
- data
- version number
- stored
- sent
- project label
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据存储方法、装置及***,所述方法包括中间服务器接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;根据所述数据标识和所述项目标识生成所述待存储数据的键值;将所述键值与所述待存储数据发送并存储到缓存***。与现有技术相比,本发明实施例的技术方案中,不同的项目服务器对应不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据标识生成的键值,能够唯一对应一个数据,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
Description
技术领域
本发明涉及互联网技术领域,更具体而言,涉及一种数据存储方法、装置及***。
背景技术
在网络搜索时代,当用户通过客户端查询信息时,客户端将查询请求发送到各个项目服务器,例如,小说服务器、图片服务器、视频服务器等,各个项目服务器根据用户输入的信息在数据库中读取相应数据,并作为查询结果数据发送到客户端进行显示。由此可见,用户每次查询信息,项目服务器都要访问数据库,而数据库所存储的数据量庞大,从而降低了动态web应用的速度。为了减少访问数据库的次数,引入了Memcached缓存***,Memcached是一种分布式内存缓存***,当项目服务器从数据库中读取到查询结果数据后,将查询结果数据发送并存储到Memcached缓存***中,当项目服务器再次接收到查询请求时,能够从Memcached缓存***中读取数据,从而避免访问数据库。
通常,Memcached缓存***以键/值对的方式存储数据,项目服务器在将待存储数据发送到Memcached缓存***之前,自定义生成键值,然后,将键值与数据一同发送到Memcached缓存***进行保存。由于通过键/值对的方式存储数据,Memcached缓存***查询数据时,根据数据对应的键值进行,具体的,当项目服务器读取、修改、更新或者删除某数据时,将该数据的键值发送到Memcached缓存***,Memcached缓存***在所存储的数据中,查找与所接收的键值相同的键值,然后再读取该键值对应的数据,并对所读取的数据执行相应的操作。
然而,由于Memcached缓存***对应存储多个项目的数据,每个项目均包含多个数据,而数据的键值由不同的项目服务器自定义生成,因此,经常出现多个不同的数据对应一个相同键值的情况,从而造成缓存***对数据产生误操作,使得Memcached缓存***管理混乱,影响数据的正常使用。
发明内容
有鉴于此,本发明实施例提供的数据存储方法、装置及***,对应每个数据生成唯一的键值,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
第一方面,本发明实施例提供了一种数据存储方法,包括中间服务器接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;根据所述数据标识和所述项目标识生成所述待存储数据的键值;将所述键值与所述待存储数据发送并存储到缓存***。
在第一方面的第一种可能的实现方式中,所述根据所述数据标识和所述项目标识生成所述待存储数据的键值包括:为所述项目标识设置版本号;以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值。
结合上述第一方面,在第二种可能的实现方式中,在为所述项目标识设置版本号之后,还包括:将所述项目标识确定为所述版本号的键值;将所述版本号和所述版本号的键值发送并存储到所述缓存***,以便于在读取所述待存储数据时,从缓存***中获取所述版本号生成所述待存储数据的键值。
结合上述第一方面,在第三种可能的实现方式中,还包括:接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;将所述项目标识发送到所述缓存***,并接收所述缓存***根据所述项目标识读取的所述版本号;以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;将所述键值发送到所述缓存***,并接收所述缓存***根据所述键值读取的所述数据;将所述数据发送到所述项目服务器。
结合上述第一方面,在第四种可能的实现方式中,还包括:接收所述项目服务器发送的数据清空请求,所述数据清空请求中包括所述项目标识;生成所述项目标识的新版本号;将所述新版本号发送到所述缓存***,以使用所述新版本号替换已存储的原版本号。
结合上述第一方面,在第五种可能的实现方式中,在接收项目服务器发送的数据存储请求之前,还包括:接收所述项目服务器发送的项目名称;根据所述项目名称生成所述项目标识;将所述项目标识发送到所述项目服务器。
第二方面,本发明实施例还提供了一种数据存储装置,包括:接收模块,用于接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;生成模块,用于根据所述接收模块接收的数据标识和所述项目标识生成所述待存储数据的键值;发送模块,用于将所述生成模块生成的键值与所述待存储数据发送并存储到缓存***。
在第二方面的第一种可能的实现方式中,所述生成模块包括版本号设置单元和生成单元,其中,所述版本号设置单元,用于为所述项目标识设置版本号;所述生成单元,用于以所述版本号设置单元设置的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值。
结合上述第二方面,在第二种可能的实现方式中,所述生成模块还包括确定单元,其中,所述确定单元,用于将所述项目标识确定为所述版本号的键值;所述发送模块,还用于将所述版本号和所述确定单元确定的版本号的键值发送并存储到所述缓存***。
结合上述第二方面,在第三种可能的实现方式中,所述接收模块,还用于接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;所述发送模块,还用于将所述项目标识发送到所述缓存***,所述接收模块接收所述缓存***根据所述项目标识读取的所述版本号;所述生成模块,还用于以所述接收模块接收的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;所述发送模块,还用于将所述键值发送到所述缓存***,所述接收模块接收所述缓存***根据所述键值读取的所述数据;所述发送模块,还用于将所述数据发送到所述项目服务器。
结合上述第二方面,在第四种可能的实现方式中,所述接收模块,还用于接收所述项目服务器发送的数据清空请求,所述数据清空请求中包括所述项目标识;所述生成模块,还用于生成所述项目标识的新版本号;所述发送模块,还用于将所述新版本号发送到所述缓存***,以使用所述新版本号替换已存储的原版本号。
结合上述第二方面,在第五种可能的实现方式中,所述接收模块,还用于接收所述项目服务器发送的项目名称;所述生成模块,还用于根据所述接收模块所接收的项目名称生成所述项目标识;所述发送模块,还用于将所述生成模块生成的项目标识发送到所述项目服务器。
第三方面,本发明实施例还提供了一种数据存储***,包括:中间服务器、项目服务器和缓存***,其中,所述中间服务器如第二方面所述;所述项目服务器,用于向所述中间服务器发送数据存储请求;还用于向所述中间服务器发送数据读取请求,并接收所述中间服务器响应所述数据读取请求所发送的数据;还用于向所述中间服务器发送数据清空请求;所述缓存***,用于存储所述中间服务器发送的键值和数据;还用于根据所述数据读取请求读取相应数据,以及将所读取的数据发送到所述中间服务器。
由以上技术方案可知,为了解决现有存储方法对数据产生误操作的技术问题,本发明实施例提供了一种数据存储方法、装置及***,本方案设置一个中间服务器,该中间服务器接收项目服务器发送的数据存储请求,其中,数据存储请求包括待存储数据、数据标识和预设的项目标识,所述数据标识为待存储数据的标识信息,项目标识为待存储数据所属项目的标识信息。中间服务器根据数据标识和项目标识生成待存储数据的键值,然后,将键值和待存储数据发送并保存到缓存***。与现有技术相比,不同的项目服务器对应不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据标识生成的键值,能够唯一对应一个数据,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明实施例提供的数据存储方法的方法流程图;
图2为本发明实施例提供的数据存储方法的另一种实施方法流程图;
图3为本发明实施例提供的数据存储装置的结构示意图;
图4为本发明实施例提供的数据存储***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中不同数据使用相同键值,当某一个项目服务器对其相应的数据进行操作时,例如,删除数据时,会将与该数据键值相同的其他数据一并删除,从而造成误操作,产生管理混乱,为了解决该技术问题,本发明实施例提供了下述方案。
请参见图1,图1为本发明实施例提供的数据存储方法的方法流程图。所述方法包括以下步骤:
步骤S101:中间服务器接收项目服务器发送的数据存储请求。
其中,本发明实施例在项目服务器与缓存***之间设置一个中间服务器,该中间服务器用于生成待存储数据的键值,以及完成项目服务器与缓存***之间必要的数据交互,具体过程详见下文描述。本发明实施例中,中间服务器可以设置为一段程序,或者承载有相关功能程序的芯片等,本发明实施例此处不再赘述。
本步骤中,项目服务器所发送的数据存储请求包括待存储数据、数据标识和预设的项目标识,其中,数据标识为项目服务器根据待存储数据的属性生成,用于标注该数据,并与其他数据进行区别,因此,同一项目中的数据对应唯一的数据标识。同样的,为了区分不同的项目,每个项目服务器对应设置唯一的项目标识,项目标识的内容可以但不限于项目名称或者项目名称的英文缩写,可以手动设置也可以自动生成,本发明实施例对此不做限制。
例如,图片所对应的项目标识可以设置为pho,可以通过人工手动添加,也可以由图片对应的项目服务器,将项目名称“图片”发送到中间服务器,中间服务器根据名称“图片”生成项目标识“pho”,再将“pho”发送到图片的项目服务器中。而图片项目服务器可以为其待存储的图片设置数据标识,例如,壁纸-001。
本步骤中通过在项目服务器与缓存***之间增设中间服务器,由中间服务器处理项目服务器与缓存***之间的数据交互,与现有技术相比,便于对不同项目服务器所对应的数据的统一管理,为本发明技术方案的实施提供条件。
步骤S102:根据所述数据标识和所述项目标识生成所述待存储数据的键值。
其中,中间服务器接收到数据标识和项目标识后,以数据标识和项目标识为参数,按照预设算法生成键值,因此,该键值能够指示待存储数据的属性,及待存储数据所属的项目服务器,从而使得每个待存储数据能够对应唯一的键值。
需要说明的是,本实施例中,预设算法可以为哈希算法,当然,也可以为其他计算机算法,本发明实施例对此不做限制。
本实施例通过将表示数据标识和待存储数据所属项目的项目标识生成键值,使得键值能够指示待存储数据的属性,及待存储数据所属的项目服务器,从而保证每个待存储数据对应唯一的键值,从而避免误操作的发生。
步骤S103:将所述键值与所述待存储数据发送并存储到缓存***。
其中,中间服务器在生成键值后,将待存储数据及其键值发送到缓存***,缓存***按照存储格式将待存储数据及其键值进行存储。由于将数据以键/值对的形式进行存储的方法,为本领域技术人员所熟知的技术,本发明实施例此处不再赘述。
由于缓存***通过键/值对的形式存储数据,因此,对数据进行任何操作均需要通过数据的键值查找相应数据。具体的,以读取数据为例,当项目服务器读取某数据时,向中间服务器发送读取请求,读取请求中包括该项目服务器的项目标识和待读取数据的数据标识,中间服务器接收读取请求后,获取项目标识和数据标识,并按照上述的预设算法生成键值,然后将该键值和读取命令发送到缓存***,缓存***查找该键值,查找到后读取该键值对应的数据,并发送到中间服务器,中间服务器将数据发送到相应的项目服务器,完成数据读取。
上述为读取数据的过程,删除数据及对数据进行其他操作的过程与读取数据的过程相似,在中间服务器计算生成键值之后,根据操作内容向缓存***发送相应的操作命令,缓存***在查找到数据后也会根据需求对数据进行相应的操作,本发明实施例此处不再赘述。
基于上述描述可知,本发明实施例提供的数据存储方法,设置一个中间服务器,该中间服务器接收项目服务器发送的数据存储请求,其中,数据存储请求包括待存储数据、数据标识和预设的项目标识,所述数据标识为待存储数据的标识信息,项目标识为待存储数据所属项目的标识信息。中间服务器根据数据标识和项目标识生成待存储数据的键值,然后,将键值和待存储数据发送并保存到缓存***。与现有技术相比,不同的项目服务器对应不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据标识生成的键值,能够唯一对应一个数据,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
为了使本发明实施例的技术方案能够实现的功能更加全面,在上述实施例的基础上,本发明还可以包括其他实施方案。请参见图2,图2为本发明实施例提供的数据存储方法的另一种实施方法流程图。由于本实施例是对上述实施例的补充,因此,本实施例中与上述实施例相同的部分,可以参见上述实施例的描述,本实施例此处不再赘述。本实施例包括下述步骤:
步骤S201:中间服务器接收项目服务器发送的数据存储请求。
本实施例以图片为例,对本发明的技术方案进行描述。图片服务器将本次搜索的图片进行存储,向中间服务器发送存储请求,存储请求中包括图片对应的项目标识pho,及图片服务器为待存储图片设置的标识壁纸-001。
步骤S202:为所述项目标识设置版本号。
其中,本实施例中,中间服务器在读取项目标识pho后,为pho设置版本号,版本号的内容可以是数字,或者字母等信息,版本号的作用详见下述实施例的描述。假设本实施例中,所设置版本号为a1。
步骤S203:以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值。
其中,本实施例中,中间服务器以pho、a1和壁纸-001三个量作为参数,利用哈希算法计算生成待存储图片的键值。
由于待存储图片的键值由pho、a1和壁纸-001三个参量生成,其中pho和壁纸-001为图片服务器生成,为固定信息,而a1为中间服务器生成,因此,为了在图片服务器对图片执行操作时,中间服务器能够顺利生成相应键值,在生成版本号a1后,可以将a1进行存储。具体的,可以将pho确定为a1的键值,将a1与pho发送到缓存***进行存储,或者将pho与a1对应存储在中间服务器,本发明实施例对此不做限制。在本发明的一个优选示例中,将a1与pho存储到缓存***中,以便于图片服务器读取、更新或者删除图片时,能够根据项目标识pho从缓存***中读取版本号a1,从而生成待读取图片的键值。
具体的,当图片服务器读取、更新或者删除图片时,在将相应操作请求发送到中间服务器后,中间服务器首先将项目标识pho发送到缓存***,缓存***根据pho查找版本号a1,并将a1发送到中间服务器,中间服务器根据参数pho、a1和壁纸-001生成键值,然后将键值与相应的操作命令发送到缓存***,缓存***对图片执行相应操作。
本步骤通过为项目标识设置版本号,不仅能够更加便于为数据生成唯一对应的键值,而且便于对该项目服务器对应的全部数据进行统筹管理。
步骤S204:将所述键值与所述待存储数据发送并存储到缓存***。
其中,根据上述实施例的描述,当一个项目服务器将已存储的数据全部清空时,需要分别向所存储的数据发送清空请求,不仅操作繁琐,而且计算量大。由于memcached存储***为缓存***,***对所存储的数据会定期清空,当项目服务器需要清空数据时,可以通过修改键值参数的方式,将已存储的所有数据的键值全部无效,不仅操作流程简单,而且能够大大减少数据处理量。
由于一个项目服务器对应一个项目标识,如果修改项目服务器对应的项目标识,则会产生一个项目服务器对应多个项目标识的情况,从而导致数据维护不便,因此,本实施例中引入了版本号。当项目服务器需要清空已存储的数据时,可以修改项目标识的版本号,由于每个数据的键值在生成时,均使用到版本号,因此,可以将已存储数据的键值全部无效,从而将已存储数据清空。
具体的,以图片项目服务器为例,当图片项目服务器需要清空当前已存储的所有图片时,向中间服务器发送数据清空请求。其中,数据清空请求中包括图片项目服务器的项目标识pho,中间服务器接收数据清空请求之后,生成项目标识pho的新版本号a2,并将pho的新版本号a2发送到缓存***,使用新版本号a2替换原版本号a1。由于当前已存储的全部图片的键值均根据原版本号a1生成,当缓存***所存储的原版本号a1被新版本号a2替换,图片服务器在获取图片时,无法读取到原版本号a1,因此,将无法获取到当前所存储的任何图片,而且,由于将图片存储到缓存***,如果存在一定时间内未被读取的数据,将会被缓存***删除,从而能够将已存储的图片全部清空。
需要说明的是,使用新版本号a2替换原版本号a1的方法,具体可以包括:先将缓存***中已存储的原版本号a1删除,然后,将项目标识pho和新版本号a2写入;或者,读取原版本号a1,将原版本号a1修改为新版本号a2后,再写入缓存***;或者,根据项目标识pho查找到原版本号a1的位置,通过新版本号a2写入该位置将原版本号a1覆盖。当然,上述方法仅为本发明实施例的优选实施方式,对本发明实施例的技术方案不构成限制。
综合上述,为了解决现有存储方法对数据产生误操作的技术问题,本发明实施例提供了一种数据存储方法,本方案设置一个中间服务器,该中间服务器接收项目服务器发送的数据存储请求,其中,数据存储请求包括待存储数据、数据标识和预设的项目标识,所述数据标识为待存储数据的标识信息,项目标识为待存储数据所属项目的标识信息。中间服务器根据数据标识和项目标识生成待存储数据的键值,然后,将键值和待存储数据发送并保存到缓存***。与现有技术相比,不同的项目服务器对应不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据标识生成的键值,能够唯一对应一个数据,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
与上述实现方法相对应的,本发明实施例还提供了一种数据存储装置,请参见图3,图3为本发明实施例提供的数据存储装置的结构示意图,所述装置包括:接收模块11、生成模块12和发送模块13,其中,接收模块11,用于接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;生成模块12,用于根据所述接收模块11接收的数据标识和所述项目标识生成所述待存储数据的键值;发送模块13,用于将所述生成模块12生成的键值与所述待存储数据发送并存储到缓存***。
所述装置中各个模块的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
与现有技术相比,本实施例所述的装置,为不同的项目服务器设置不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据标识生成的键值,能够唯一对应一个数据,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
基于上述实施例,生成模块12具体包括版本号设置单元和生成单元,其中,所述版本号设置单元,用于为所述项目标识设置版本号;所述生成单元,用于以所述版本号设置单元设置的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值。
在本实施例的基础上,在另外一个实施例中,所述生成模块还包括确定单元,其中,所述确定单元,用于将所述项目标识确定为所述版本号的键值;本实施例中,所述发送模块,还用于将所述版本号和所述确定单元确定的版本号的键值发送并存储到所述缓存***。
此外,在上述实施例的基础上,在另一个实施例中,接收模块11,还用于接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;发送模块13,还用于将所述项目标识发送到所述缓存***,所述接收模块11接收所述缓存***根据所述项目标识读取的所述版本号;然后,所述生成模块12,还用于以所述接收模块11接收的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;所述发送模块13,还用于将所述键值发送到所述缓存***,所述接收模块11接收所述缓存***根据所述键值读取的所述数据;所述发送模块13,再将所述数据发送到所述项目服务器。
在另外一种实施方式中,所述接收模块11,还用于接收所述项目服务器发送的数据清空请求,所述数据清空请求中包括所述项目标识;在本实施例中,所述生成模块12,还用于生成所述项目标识的新版本号;所述发送模块13,还用于将所述新版本号发送到所述缓存***,以使用所述新版本号替换已存储的原版本号。
在另一个实施例中,所述接收模块11,还用于接收所述项目服务器发送的项目名称;所述生成模块12,还用于根据所述接收模块11所接收的项目名称生成所述项目标识;所述发送模块13,还用于将所述生成模块12生成的项目标识发送到所述项目服务器。
所述装置中各个模块和单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
由此可见,本发明实施例所提供的数据存储装置,为不同的项目服务器预设不同的项目标识,能够将不同项目的数据进行区分,从而能够为每一个数据设置唯一对应的键值,能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
与上述实现方法和装置相对应的,本发明实施例还提供了一种数据存储***,请参见图4,图4为本发明实施例提供的数据存储***的结构示意图,所述***包括:中间服务器1、项目服务器2和缓存***3,其中,中间服务器1包括如上文所述的装置,本发明实施例此处不再赘述。
项目服务器2,用于向中间服务器1发送数据存储请求,其中,数据存储请求包括待存储数据、数据标识和预设的项目标识;相应的,缓存***3,用于存储中间服务器1发送的键值和数据。
在上述实施例的基础上,在另一个实施例中,项目服务器2,还用于向中间服务器1发送数据读取请求,并接收中间服务器1响应数据读取请求所发送的数据;相应的,在本实施例中,缓存***3,还用于根据数据读取请求读取相应数据,并将所读取的数据发送到中间服务器1。
此外,在另一个实施例中,项目服务器2,还用于向中间服务器发送数据清空请求。
需要说明的是,本实施例中,项目服务器2的数量可以为多个,具体的,根据实际应用的需求设定,本发明实施例对此不做限制。
此外,所述***中各个服务器和缓存***的功能和作用的实现过程详见上述描述,在此不再赘述。
综合上述,为了解决现有存储方法对数据产生误操作的技术问题,本发明实施例提供了一种数据存储方法、装置及***,本方案设置一个中间服务器,该中间服务器接收项目服务器发送的数据存储请求,其中,数据存储请求包括待存储数据、数据标识和预设的项目标识,所述数据标识为待存储数据的标识信息,项目标识为待存储数据所属项目的标识信息。中间服务器根据数据标识和项目标识生成待存储数据的键值,然后,将键值和待存储数据发送并保存到缓存***。与现有技术相比,不同的项目服务器对应不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据标识生成的键值,能够唯一对应一个数据,从而能够避免误操作的产生,使得缓存***能够正常管理数据,保证数据的正常使用。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种数据存储方法,其特征在于,包括:
中间服务器接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;
为所述项目标识设置版本号,将所述版本号与所述项目标识发送并关联地存储到缓存***,以便响应于数据读取请求,从所述缓存***获取与所述数据读取请求中包含的项目标识对应的版本号;
以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;
将所述键值与所述待存储数据发送到缓存***,以键值对的形式存储在所述缓存***中,以便于所述缓存***通过所述键值查找与其对应的数据;
响应于接收所述项目服务器发送的数据清空请求,所述中间服务器生成所述项目标识的新版本号,其中,所述数据清空请求中包括所述项目标识;
将所述新版本号发送到所述缓存***,以使用所述新版本号替换已存储的原版本号,其中,所述缓存***被配置为将存储在其上的预定时间内未被读取的数据删除。
2.如权利要求1所述的方法,其特征在于,在为所述项目标识设置版本号之后,还包括:
将所述项目标识确定为所述版本号的键值;
将所述版本号的键值与所述版本号一起发送并存储到所述缓存***,以便于在读取所述待存储数据时,从缓存***中获取所述版本号生成所述待存储数据的键值。
3.如权利要求1或2所述的方法,其特征在于,还包括:
接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;
将所述项目标识发送到所述缓存***,并接收所述缓存***根据所述项目标识读取的所述版本号;
以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;
将所述键值发送到所述缓存***,并接收所述缓存***根据所述键值读取的所述数据;
将所述数据发送到所述项目服务器。
4.如权利要求1所述的方法,其特征在于,在接收项目服务器发送的数据存储请求之前,还包括:
接收所述项目服务器发送的项目名称;
根据所述项目名称生成所述项目标识;
将所述项目标识发送到所述项目服务器。
5.一种数据存储装置,其特征在于,包括:
接收模块,用于接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;
生成模块,包括:
版本号设置单元,用于为所述项目标识设置版本号;
生成单元,用于以所述版本号设置单元设置的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;
发送模块,用于将所述版本号与所述项目标识发送并关联地存储到缓存***,以便响应于数据读取请求,从所述缓存***获取与所述数据读取请求中包含的项目标识对应的版本号,并且还用于将所述生成模块生成的键值与所述待存储数据以及所述版本号发送到缓存***,以键值对的形式存储在所述缓存***中,以便于所述缓存***通过所述键值查找与其对应的数据;
接收模块,用于接收所述项目服务器发送的数据清空请求,所述数据清空请求中包括所述项目标识;
所述生成模块还用于生成所述项目标识的新版本号;
所述发送模块还用于将所述新版本号发送到所述缓存***,以使用所述新版本号替换已存储的原版本号,其中,所述缓存***被配置为将存储在其上的预定时间内未被读取的数据删除。
6.如权利要求5所述的装置,其特征在于,所述生成模块还包括确定单元,其中,
所述确定单元,用于将所述项目标识确定为所述版本号的键值;
所述发送模块,还用于将所述确定单元确定的版本号的键值与所述版本号一起发送并存储到所述缓存***。
7.如权利要求5或6所述的装置,其特征在于,
所述接收模块,还用于接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;
所述发送模块,还用于将所述项目标识发送到所述缓存***,所述接收模块接收所述缓存***根据所述项目标识读取的所述版本号;
所述生成模块,还用于以所述接收模块接收的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;
所述发送模块,还用于将所述键值发送到所述缓存***,所述接收模块接收所述缓存***根据所述键值读取的所述数据;
所述发送模块,还用于将所述数据发送到所述项目服务器。
8.如权利要求5所述的装置,其特征在于,
所述接收模块,还用于接收所述项目服务器发送的项目名称;
所述生成模块,还用于根据所述接收模块所接收的项目名称生成所述项目标识;
所述发送模块,还用于将所述生成模块生成的项目标识发送到所述项目服务器。
9.一种数据存储***,其特征在于,包括:中间服务器、项目服务器和缓存***,其中,
所述中间服务器是权利要求5至8中任一项所述的数据存储装置;
所述项目服务器,用于向所述中间服务器发送数据存储请求;还用于向所述中间服务器发送数据读取请求,并接收所述中间服务器响应所述数据读取请求所发送的数据;还用于向所述中间服务器发送数据清空请求;
所述缓存***,用于存储所述中间服务器发送的键值和数据;还用于根据所述数据读取请求读取相应数据,并将所读取的数据发送到所述中间服务器,其中,所述缓存***被配置为将存储在其上的预定时间内未被读取的数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510482395.8A CN105141672B (zh) | 2015-08-03 | 2015-08-03 | 一种数据存储方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510482395.8A CN105141672B (zh) | 2015-08-03 | 2015-08-03 | 一种数据存储方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105141672A CN105141672A (zh) | 2015-12-09 |
CN105141672B true CN105141672B (zh) | 2017-09-15 |
Family
ID=54726876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510482395.8A Active CN105141672B (zh) | 2015-08-03 | 2015-08-03 | 一种数据存储方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105141672B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544916B (zh) * | 2016-06-29 | 2020-04-24 | 迈普通信技术股份有限公司 | 一种缓存方法及存储设备 |
CN106528844B (zh) * | 2016-11-24 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 一种数据请求方法及装置和数据存储*** |
CN107025289B (zh) * | 2017-04-14 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及相关设备 |
CN109213709B (zh) * | 2017-06-30 | 2021-01-15 | 阿里巴巴(中国)有限公司 | 数据转换方法、装置及数据处理设备 |
CN107508878B (zh) * | 2017-08-17 | 2020-08-11 | 杭州时趣信息技术有限公司 | 一种基于缓存代理服务器的键名删除方法及装置 |
CN108052656A (zh) * | 2017-12-28 | 2018-05-18 | 迈普通信技术股份有限公司 | 一种数据缓存控制方法及设备 |
CN109902119A (zh) * | 2019-03-11 | 2019-06-18 | 深圳众享互联科技有限公司 | 区块链与数据库混合***数据标识方法及其展示方法 |
CN112052234B (zh) * | 2020-08-20 | 2024-04-23 | 北京完美赤金科技有限公司 | 业务数据的处理方法和装置、存储介质、电子装置 |
CN113849373A (zh) * | 2021-09-27 | 2021-12-28 | 中国电信股份有限公司 | 服务器监管方法、装置以及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867607A (zh) * | 2010-05-21 | 2010-10-20 | 北京无限立通通讯技术有限责任公司 | 一种分布式数据存取方法、装置及*** |
US9311135B2 (en) * | 2011-01-18 | 2016-04-12 | Scality, S.A. | Method for generating universal objects identifiers in distributed multi-purpose storage systems |
CN103428171B (zh) * | 2012-05-17 | 2016-08-24 | 阿里巴巴集团控股有限公司 | 一种session的处理方法、应用服务器及*** |
US9367572B2 (en) * | 2013-09-06 | 2016-06-14 | Realnetworks, Inc. | Metadata-based file-identification systems and methods |
CN103607312B (zh) * | 2013-11-29 | 2017-02-15 | 广州华多网络科技有限公司 | 用于服务器***的数据请求处理方法及*** |
-
2015
- 2015-08-03 CN CN201510482395.8A patent/CN105141672B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105141672A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105141672B (zh) | 一种数据存储方法、装置及*** | |
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
EP2721504B1 (en) | File processing method, system and server-clustered system for cloud storage | |
CN104537076B (zh) | 一种文件读写方法及装置 | |
US20150286674A1 (en) | Consolidating information relating to duplicate images | |
WO2011033582A1 (en) | Storage system for eliminating duplicated data | |
JP2012089094A5 (zh) | ||
CN105701096A (zh) | 索引生成方法、数据查询方法、装置及*** | |
CN105100146A (zh) | 数据存储方法、装置及*** | |
WO2008150725A1 (en) | Method, equipment and system for resource acquisition | |
CN102708165A (zh) | 分布式文件***中的文件处理方法及装置 | |
US10594804B2 (en) | Directory service discovery and/or learning | |
CN103544077A (zh) | 数据处理方法及装置、共享存储设备 | |
CN110019048A (zh) | 基于MongoDB的文件处理方法、装置、***及服务器 | |
CN104881466A (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN109600410A (zh) | 数据存储***以及方法 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
KR20090063669A (ko) | 데이터 서버 주소의 변경과 디스크 이동에 투명한 파일메타데이터 관리 방법 및 시스템 | |
CN116701330A (zh) | 物流信息共享方法、装置、设备及存储介质 | |
US20200125266A1 (en) | Providing a global unique identifier for a storage volume | |
CN105765570A (zh) | 音乐识别 | |
CN111382180B (zh) | 一种本地缓存的数据清除方法和装置 | |
WO2021137768A1 (en) | Method, apparatus and device for consuming messages based on message queue | |
CN102164152A (zh) | 一种远程处理文件的方法及*** | |
CN108062277A (zh) | 一种电子凭据数据访问方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200811 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 12 layer self unit 01 Patentee before: GUANGZHOU SHENMA MOBILE INFORMATION TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |