一种数据存储方法、装置及系统的制作方法

文档序号:9420397阅读:258来源:国知局
一种数据存储方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,更具体而言,涉及一种数据存储方法、装置及系统。
【背景技术】
[0002]在网络搜索时代,当用户通过客户端查询信息时,客户端将查询请求发送到各个项目服务器,例如,小说服务器、图片服务器、视频服务器等,各个项目服务器根据用户输入的信息在数据库中读取相应数据,并作为查询结果数据发送到客户端进行显示。由此可见,用户每次查询信息,项目服务器都要访问数据库,而数据库所存储的数据量庞大,从而降低了动态web应用的速度。为了减少访问数据库的次数,引入了 Memcached缓存系统,Memcached是一种分布式内存缓存系统,当项目服务器从数据库中读取到查询结果数据后,将查询结果数据发送并存储到Memcached缓存系统中,当项目服务器再次接收到查询请求时,能够从Memcached缓存系统中读取数据,从而避免访问数据库。
[0003]通常,Memcached缓存系统以键/值对的方式存储数据,项目服务器在将待存储数据发送到Memcached缓存系统之前,自定义生成键值,然后,将键值与数据一同发送到Memcached缓存系统进行保存。由于通过键/值对的方式存储数据,Memcached缓存系统查询数据时,根据数据对应的键值进行,具体的,当项目服务器读取、修改、更新或者删除某数据时,将该数据的键值发送到Memcached缓存系统,Memcached缓存系统在所存储的数据中,查找与所接收的键值相同的键值,然后再读取该键值对应的数据,并对所读取的数据执行相应的操作。
[0004]然而,由于Memcached缓存系统对应存储多个项目的数据,每个项目均包含多个数据,而数据的键值由不同的项目服务器自定义生成,因此,经常出现多个不同的数据对应一个相同键值的情况,从而造成缓存系统对数据产生误操作,使得Memcached缓存系统管理混乱,影响数据的正常使用。

【发明内容】

[0005]有鉴于此,本发明实施例提供的数据存储方法、装置及系统,对应每个数据生成唯一的键值,从而能够避免误操作的产生,使得缓存系统能够正常管理数据,保证数据的正常使用。
[0006]第一方面,本发明实施例提供了一种数据存储方法,包括中间服务器接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;根据所述数据标识和所述项目标识生成所述待存储数据的键值;将所述键值与所述待存储数据发送并存储到缓存系统。
[0007]在第一方面的第一种可能的实现方式中,所述根据所述数据标识和所述项目标识生成所述待存储数据的键值包括:为所述项目标识设置版本号;以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值。
[0008]结合上述第一方面,在第二种可能的实现方式中,在为所述项目标识设置版本号之后,还包括:将所述项目标识确定为所述版本号的键值;将所述版本号和所述版本号的键值发送并存储到所述缓存系统,以便于在读取所述待存储数据时,从缓存系统中获取所述版本号生成所述待存储数据的键值。
[0009]结合上述第一方面,在第三种可能的实现方式中,还包括:接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;将所述项目标识发送到所述缓存系统,并接收所述缓存系统根据所述项目标识读取的所述版本号;以所述版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;将所述键值发送到所述缓存系统,并接收所述缓存系统根据所述键值读取的所述数据;将所述数据发送到所述项目服务器。
[0010]结合上述第一方面,在第四种可能的实现方式中,还包括:接收所述项目服务器发送的数据清空请求,所述数据清空请求中包括所述项目标识;生成所述项目标识的新版本号;将所述新版本号发送到所述缓存系统,以使用所述新版本号替换已存储的原版本号。
[0011]结合上述第一方面,在第五种可能的实现方式中,在接收项目服务器发送的数据存储请求之前,还包括:接收所述项目服务器发送的项目名称;根据所述项目名称生成所述项目标识;将所述项目标识发送到所述项目服务器。
[0012]第二方面,本发明实施例还提供了一种数据存储装置,包括:接收模块,用于接收项目服务器发送的数据存储请求,所述数据存储请求包括待存储数据、数据标识和预设的项目标识;生成模块,用于根据所述接收模块接收的数据标识和所述项目标识生成所述待存储数据的键值;发送模块,用于将所述生成模块生成的键值与所述待存储数据发送并存储到缓存系统。
[0013]在第二方面的第一种可能的实现方式中,所述生成模块包括版本号设置单元和生成单元,其中,所述版本号设置单元,用于为所述项目标识设置版本号;所述生成单元,用于以所述版本号设置单元设置的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值。
[0014]结合上述第二方面,在第二种可能的实现方式中,所述生成模块还包括确定单元,其中,所述确定单元,用于将所述项目标识确定为所述版本号的键值;所述发送模块,还用于将所述版本号和所述确定单元确定的版本号的键值发送并存储到所述缓存系统。
[0015]结合上述第二方面,在第三种可能的实现方式中,所述接收模块,还用于接收所述项目服务器的数据读取请求,所述数据读取请求包括所述数据标识和所述项目标识;所述发送模块,还用于将所述项目标识发送到所述缓存系统,所述接收模块接收所述缓存系统根据所述项目标识读取的所述版本号;所述生成模块,还用于以所述接收模块接收的版本号、所述数据标识和所述项目标识为参数,按照预设算法生成所述待存储数据的键值;所述发送模块,还用于将所述键值发送到所述缓存系统,所述接收模块接收所述缓存系统根据所述键值读取的所述数据;所述发送模块,还用于将所述数据发送到所述项目服务器。
[0016]结合上述第二方面,在第四种可能的实现方式中,所述接收模块,还用于接收所述项目服务器发送的数据清空请求,所述数据清空请求中包括所述项目标识;所述生成模块,还用于生成所述项目标识的新版本号;所述发送模块,还用于将所述新版本号发送到所述缓存系统,以使用所述新版本号替换已存储的原版本号。
[0017]结合上述第二方面,在第五种可能的实现方式中,所述接收模块,还用于接收所述项目服务器发送的项目名称;所述生成模块,还用于根据所述接收模块所接收的项目名称生成所述项目标识;所述发送模块,还用于将所述生成模块生成的项目标识发送到所述项目服务器。
[0018]第三方面,本发明实施例还提供了一种数据存储系统,包括:中间服务器、项目服务器和缓存系统,其中,所述中间服务器如第二方面所述;所述项目服务器,用于向所述中间服务器发送数据存储请求;还用于向所述中间服务器发送数据读取请求,并接收所述中间服务器响应所述数据读取请求所发送的数据;还用于向所述中间服务器发送数据清空请求;所述缓存系统,用于存储所述中间服务器发送的键值和数据;还用于根据所述数据读取请求读取相应数据,以及将所读取的数据发送到所述中间服务器。
[0019]由以上技术方案可知,为了解决现有存储方法对数据产生误操作的技术问题,本发明实施例提供了一种数据存储方法、装置及系统,本方案设置一个中间服务器,该中间服务器接收项目服务器发送的数据存储请求,其中,数据存储请求包括待存储数据、数据标识和预设的项目标识,所述数据标识为待存储数据的标识信息,项目标识为待存储数据所属项目的标识信息。中间服务器根据数据标识和项目标识生成待存储数据的键值,然后,将键值和待存储数据发送并保存到缓存系统。与现有技术相比,不同的项目服务器对应不同的项目标识,从而能够将不同项目的数据进行区分,而同一个项目中的数据由项目服务器设置不同的数据标识,因此,根据项目标识和数据
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1