本发明涉及互联网信息技术领域,特别是涉及一种数据存储方法及系统。
背景技术:
从目前来看,Internet市场具有巨大的发展潜力,未来其应用将涵盖从办公室共享信息到市场营销、服务等广泛领域。另外,Internet带来的电子贸易正改变着先进商业活动的传统模式,其提供的方便而广泛的互连必将对未来社会生活的各个方面产生影响。
虽然Internet有诸多优点,但也是有其固有缺点的。数据安全性问题是困扰Internet用户发展的一个主要因素,虽然现在已有不少的方案和服务来确保Internet网上联机商业交易的可靠性,但真正适用并将主宰市场的产品尚不明确。
在Internet中,用户通常通过计算机终端设备来实现各种网络活动,计算机中设置的服务器为用户的各种网络活动提供相应的服务需求,例如用户访问、信息处理等。然而,在服务器处理数据、需要把数据保存到系统数据库时,有时会出现需要保存的数据中部分数据无法保存到系统数据库中,从而导致数据丢失,数据安全存在隐患。
技术实现要素:
本发明实施例的目的在于提供一种数据存储方法及系统,以实现将系统数据库中保存失败的待保存数据保存到系统数据库中,保证数据的安全性与完整性。具体技术方案如下:
为达到上述目的,本发明公开了一种数据存储方法,包括:
将待存储数据保存到系统数据库中;
获取保存失败的待存储数据;
将保存失败的所述待存储数据保存到缓存服务器中;
将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中,直至所述系统数据库中保存所述保存失败的待存储数据。
较佳的,所述将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中,包括:
每隔预设时间周期,将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中。
较佳的,所述将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中,包括:
当所述缓存服务器中存储的所述保存失败的待存储数据容量超过预设阈值,将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中。
较佳的,在所述将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中之前,所述数据存储方法还包括:
确定所述缓存服务器中是否存储有所述保存失败的待存储数据;
所述将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中,包括:
若所述缓存服务器中存储有所述保存失败的待存储数据,将所述缓存服务器中存储的所述保存失败的待存储数据存储到系统数据库中。
较佳的,在所述将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中之后,所述数据存储方法还包括:
清除所述缓存服务器中存储的已保存到所述系统数据库中的所述保存失败的待存储数据。
为达到上述目的,本发明还公开了一种数据存储系统,包括:
第一存储模块,用于将待存储数据保存到系统数据库中;
获取数据模块,用于获取保存失败的待存储数据;
第二存储模块,用于将所述保存失败的待存储数据保存到缓存服务器中;
第三存储模块,用于将所述缓存服务器中存储的所述保存失败的待存储数据存储到系统数据库中,直至所述系统数据库中保存所述保存失败的待存储数据。
较佳的,所述第三存储模块,具体用于:
每隔预设时间周期,将所述缓存服务器中存储的所述保存失败的待存储数据存储到系统数据库中。
较佳的,所述第三存储模块,具体还用于:
当所述缓存服务器中存储的所述保存失败的待存储数据容量超过预设阈值,将所述缓存服务器中存储的所述保存失败的待存储数据存储到所述系统数据库中。
较佳的,在所述第三存储模块之前,所述数据存储系统还包括:
确定模块,用于确定所述缓存服务器中是否存储有所述保存失败的待存储数据;
所述第三存储模块,具体用于:
若所述缓存服务器中存储有所述保存失败的待存储数据,将所述缓存服务器中存储的所述保存失败的待存储数据存储到系统数据库中。
较佳的,在所述第三存储模块之后,所述数据存储系统还包括:
清除模块,用于清除所述缓存服务器中存储的已保存到所述系统数据库中的所述保存失败的待存储数据。
本发明提供了一种数据存储方法及系统,通过设置一个缓存服务器来将系统数据库保存失败的待存储数据暂存在缓存服务器中,再将缓存服务器中暂存的保存失败的待存储数据保存到系统数据库中,本发明实现了系统数据库对待保存数据的完整保存,保证了数据的安全性与完整性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种数据存储方法流程图;
图2为本发明实施例的一种数据存储系统图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据存储方法及装置,如图1所示,图1为本发明实施例的一种数据存储方法流程图,包括:
S101:将待存储数据保存到系统数据库中;
具体的,在用户网络活动时,通过系统服务器接收用户的服务请求,完成用户网络活动的相应操作,可将用户网络活动的各种数据信息视为待存储数据,例如用户在访问某个网站时,网站访问次数可视为用户网络活动的待存储数据,用户在网站内浏览点击网站页面时,页面点击次数可视为用户网络活动的待存储数据等。
由于服务器需要响应服务请求并进行处理,一般来说服务器应具备承担服务并且保障服务的能力,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。数据库服务器为用户网络活动提供数据服务。数据库服务器建立在系统数据库基础上,具有系统数据库的特性,数据库服务器具有系统数据库管理功能,包括系统配置与管理、数据存取与更新管理、数据完整性管理和数据安全性管理;数据库的查询和操纵功能,该功能包括数据库检索和修改;数据库维护功能,包括数据导入/导出管理,数据库结构维护、数据恢复功能和性能监测;数据库并行运行,由于在同一时间,访问数据库的用户不止一个,所以数据库服务器必须支持并行运行机制,处理多个事件的同时发生。数据库服务器在为用户活动提供各种应用服务操作的同时,最终把用户网络活动的待存储数据保存在系统数据库中。
例如,在统计网站访问次数时,即用户在访问某个网站时,服务器首先响应用户访问请求,数据库服务器导入该用户访问次数,包括对该用户访问的数据存取与更新管理、数据库的查询和操纵、数据库检索和修改、数据库维护等,最终将该用户访问次数记录在系统数据库中,以此类推,系统数据库最终保存记录所有用户的网站访问次数,即可统计出该网站访问次数。
S102:获取保存失败的待存储数据;
具体的,当上述数据库服务器在将待存储数据保存在系统数据库中时,可能存在用户访问次数过于频繁或者数据库服务器在某个时间点或时间段内没有响应用户网络活动,导致该时间点或时间段的用户网络活动的待存储数据无法保存到系统数据库中。
在本发明实施例中,设置缓存服务器来获取系统数据库保存失败的待存储数据。具体做法是:通过预设程序获取用户网络活动的待存储数据中保存失败的待存储数据,并将获取到的保存失败的待存储数据与缓存服务器建立联系,即通过设置在缓存服务器中的信息获取服务获取该保存失败的待存储数据到缓存服务器中。
例如,在统计网站访问次数时,即用户在访问某个网站时,服务器首先响应用户访问请求,数据库服务器导入用户访问次数,包括对用户访问的数据存取与更新管理、数据库的查询和操纵、数据库检索和修改、数据库维护等,最终将用户访问次数记录在系统数据库中,但由于用户访问次数过于频繁对该网站点击次数过多或其它原因,导致数据库服务器在某个时间点或时间段内没有将用户网站访问次数保存到系统数据库中,造成该时间点或时间段内用户网站访问次数丢失,最终系统数据库统计的网站访问次数少于实际用户访问次数。这时,便可通过设置的缓存服务器的数据获取服务来获取系统数据库该时间点或时间段的没有保存的用户访问次数。
S103:将保存失败的待存储数据保存到缓存服务器中;
具体的,通过上述设置在缓存服务器的数据获取服务获取系统数据库某时间点或时间段的没有保存的数据后,设置在缓存服务器中的具有保存功能的服务将该数据视为保存失败的待存储数据,将保存失败的待存储数据暂存在缓存服务器中。
例如,在统计网站访问次数时,最终将用户访问次数记录在系统数据库中,但由于用户访问次数过于频繁对该网站点击次数过多或其它原因,数据库服务器在某个时间点或时间段内没有将用户网站访问次数保存到系统数据库中,通过设置的缓存服务器的数据获取服务来获取系统数据库该时间点或时间段的没有保存的用户访问次数,设置在缓存服务器中的具有保存功能的服务将该用户访问次数视为保存失败的待存储数据,将用户访问次数暂存在缓存服务器中。
S104:将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中,直至系统数据库中保存保存失败的待存储数据。
具体的,通过设置在缓存服务器中的发送服务将缓存服务器中暂存的保存失败的待存储数据发送给系统数据库,系统数据库中的数据接收服务接收到缓存服务器发送来的保存失败的待存储数据,并调用系统数据库中数据保存服务来保存接收到的保存失败的待存储数据,最终将缓存服务器中缓存的所有保存失败的待存储数据保存在系统数据库中。
例如,在统计网站访问次数时,最终将用户访问次数记录在系统数据库中,但由于用户访问次数过于频繁对该网站点击次数过多或其它原因,数据库服务器在某个时间点或时间段内没有将用户网站访问次数保存到系统数据库中,通过设置的缓存服务器的数据获取服务来获取数据库该时间点或时间段的没有保存的用户访问次数,设置在缓存服务器中的具有保存功能的服务将该没有保存的用户访问次数视为保存失败的待存储数据,将用户访问次数暂存在缓存服务器中。通过设置在缓存服务器中的发送服务将缓存服务器中暂存的用户访问次数发送给系统数据库,系统数据库中的数据接收服务接收到缓存服务器发送来的用户访问次数,并调用数据库中数据保存服务来保存接收到的用户访问次数,最终将缓存服务器中缓存的所有用户访问次数保存在数据库中对应的对该网站访问次数统计的数据中,这样,便可准确地统计出网站访问次数。
本发明提供的一种数据存储方法,是通过设置一个缓存服务器,利用缓存服务器的缓存功能来将系统数据库保存失败的待存储数据暂存在缓存服务器中,再将缓存服务器中暂存的保存失败的待存储数据保存到系统数据库中。本发明实现了系统数据库对待保存数据的完整保存,保证了数据的准确性、安全性与完整性。
优选地,在本发明的一种将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中的实施例中,包括:
每隔预设时间周期,将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中。
具体的,对该缓存服务器设置一个预设时间周期,设置预设时间周期的目的是:在预设时间周期内缓存服务器定期将其中保存的保存失败的待存储数据发送给系统数据库,实现缓存服务器对保存失败的待存储数据定时保存更新能力。
具体做法是:调用缓存服务器中发送服务,在预设时间周期内对保存在缓存服务器中的保存失败的待存储数据定时发送,数据库中的接收服务接收到缓存服务器中发送来的保存失败的待存储数据,设置在缓存服务器中的保存服务将数据库接收来的保存失败的待存储数据保存,直至该时间周期内的缓存服务器发送的保存失败的待存储数据全部保存在数据库中。
例如,在统计网站访问次数时,通过设置在缓存服务器中的分布式缓存memcached开源方法获取数据库某时间点或时间段的没有保存的用户访问次数,缓存服务器将该数据视为保存失败的待存储数据,将用户访问次数暂存在缓存服务器中。在实施过程中,对缓存服务器设置一个预设时间周期,在预设时间周期内对缓存服务器进行扫描,检测缓存服务器中是否保存有用户访问次数,如果检测到缓存服务器中保存有用户访问次数,缓存服务器中的memcached开源方法将保存的用户访问次数发送给系统数据库,系统数据库中的接收服务接收到缓存服务器中发送来的用户访问次数,设置在缓存服务器中的保存服务将数据库接收来的用户访问次数保存,最终将缓存服务器中保存的用户访问次数全部保存在系统数据库中对应的对该网站访问次数统计的数据中,实现对统计该网站访问次数的正确统计,防止数据丢失而造成的统计数据出现偏差。
需要说明的是,在缓存服务中设置其它数据保存服务或方法,将保存失败的待存储数据保存在缓存服务器中,都属于本专利的保护范围内。
通过对缓存服务器设置预设时间,在预设时间周期内对缓存服务器进行扫描,将预设时间周期内缓存服务器暂存的保存失败的待存储数据发送给系统数据库,避免缓存服务器保存数据过多造成数据混乱以及对缓存服务器造成压力,提高缓存服务器数据保存性能,另外对系统数据库,可按照预设时间将保存失败的待存储数据定时保存在系统数据库中,也避免一次性将缓存服务器中所有数据保存到系统数据库的压力。
优选地,在本发明的一种将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中的实施例中,包括:
当缓存服务器中存储的保存失败的待存储数据容量超过预设阈值,将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中。
具体的,对缓存服务器的数据存储容量设置一个阈值,在缓存服务器中数据保存服务将保存失败的待存储数据保存在缓存服务器中,设置程序获取缓存服务器保存的保存失败的待存储数据容量与对缓存服务器的数据存储容量设置的阈值,并且比较两者的大小,如果缓存服务器保存的保存失败的待存储数据容量大于对缓存服务器的数据存储容量设置的阈值,则缓存服务器中的数据发送服务将保存在缓存服务器中的保存失败的待存储数据依次发送到系统数据库中,系统数据库的数据接收服务接受缓存服务器发送来的保存失败的待存储数据,并将缓存服务器发送来的所有保存失败的待存储数据保存在系统数据库中。
例如,在统计网站访问次数时,通过设置在缓存服务器中的memcached开源方法获取系统数据库某时间点或时间段的没有保存的用户访问次数,缓存服务器将该数据视为保存失败的待存储数据,将用户访问次数暂存在缓存服务器中。在实施过程中,对缓存服务器的数据存储容量设置一个阈值,设置于缓存服务器中的memcached开源方法将没有保存的用户访问次数保存在缓存服务器中,设置程序获取缓存服务器保存的没有保存的用户访问次数数据容量与对缓存服务器的数据存储容量设置的阈值,并且比较两者的大小,如果缓存服务器保存的没有保存的用户访问次数数据容量大于对缓存服务器的数据存储容量设置的阈值,则缓存服务器中的数据发送服务将保存在缓存服务器中的用户访问次数依次发送到系统数据库中,系统数据库的数据接收服务接受缓存服务器发送来的用户访问次数,并将缓存服务器发送来的所有保存失败的用户访问次数保存在系统数据库中对应的对该网站访问次数统计的数据中,实现对统计该网站访问次数的正确统计,防止对该部分数据的丢失。
通过对缓存服务器设置一个缓存容量的阈值,可以很好的降低缓存服务器的存储压力,提高缓存服务器的缓存性能,并且,对于系统数据库而言,系统数据库按照设定的缓存容量的阈值进行保存保存失败的待存储数据,也降低了系统数据库的存储压力。
优选地,本发明实施例的一种在将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中之前的实施例中,还包括:
确定缓存服务器中是否存储有保存失败的待存储数据;
具体的,通过预设程序对缓存服务器进行定时扫描,检测缓存服务器中是否保存有保存失败的待存储数据。进行定时扫描的目的是:定时检测缓存服务器中是否保存有保存失败的待存储数据,以免缓存服务器中保存的保存失败的待存储数据过多,提高缓存服务器的存储性能。
将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中,包括:
若缓存服务器中存储有保存失败的待存储数据,将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中。
具体的,通过上述检测到缓存服务器中保存有保存失败的待存储数据,缓存服务器中的数据发送服务按照存储时间先后顺序将缓存服务器中保存的保存失败的待存储数据发送给系统数据库,系统数据库中的数据接收服务接受缓存服务器发送来的保存失败的待存储数据,进而,系统数据库中的数据保存服务保存缓存服务器发送来的保存失败的待存储数据,直至缓存服务器中所有的保存失败的待存储数据全部保存在系统数据库中。
例如,在统计网站访问次数时,通过设置在缓存服务器中的memcached开源方法获取数据库某时间点或时间段的没有保存的用户访问次数,缓存服务器将该数据视为保存失败的待存储数据,将用户访问次数暂存在缓存服务器中。在实施过程中,通过预设程序对缓存服务器进行扫描,检测缓存服务器中是否保存有没有保存的用户访问次数,若检测到缓存服务器中有保存的没有保存的用户访问次数,设置于缓存服务器中的memcached开源方法按照保存的没有保存的用户访问次数存储时间先后顺序,将保存的没有保存的用户访问次数发送给系统数据库,系统数据库中的数据接收服务接收缓存服务器发送来的没有保存的用户访问次数,进而,系统数据库中的数据保存服务保存系统数据库中的数据接收服务接收的没有保存的用户访问次数,直至缓存服务器中所有的没有保存的用户访问次数全部保存在系统数据库中对应的对该网站访问次数统计的数据中,实现对网站访问次数的正确统计,防止对该部分数据的丢失。
可见,本发明实施例通过对缓存服务器检测,检测缓存服务器中保存的保存失败的待存储数据,再将缓存服务器中保存的保存失败的待保存数据保存到系统数据库中,可实现缓存服务器的实时检测,系统数据库的实时保存。
优选地,在将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中之后,还包括:
清除缓存服务器中存储的已保存到系统数据库中的保存失败的待存储数据。
具体的,当缓存服务器中保存的保存失败的待存储数据发送给系统数据库,系统数据库将保存失败的待存储数据进行保存后,缓存服务器中的数据清除服务清除缓存服务器中的保存到系统数据库中的保存失败的待存储数据。
例如,在统计网站访问次数时,通过设置在缓存服务器中的memcached开源方法获取系统数据库某时间点或时间段的没有保存的用户访问次数,缓存服务器将该数据视为保存失败的待存储数据,将用户访问次数暂存在缓存服务器中,设置于缓存服务器中的memcached开源方法按照保存的没有保存的用户访问次数存储时间先后顺序,将保存的没有保存的用户访问次数发送给系统数据库,系统数据库中的数据接收服务接收缓存服务器发送来的没有保存的用户访问次数,进而,系统数据库中的数据保存服务保存系统数据库中的数据接收服务接收的没有保存的用户访问次数,直至缓存服务器中所有的没有保存的用户访问次数全部保存在系统数据库中对应的对该网站访问次数统计的数据中。在系统数据库完成对缓存服务器发送来的没有保存的用户访问次数保存好后,缓存服务器中的memcached开源方法清除保存到系统数据库中的没有保存的用户访问次数。
可见,清除缓存服务器中保存的保存失败的待存储数据,可以节省缓存服务器的存储空间,提高缓存服务器的利用率。
本发明实施例还公开了一种数据存储系统,可参见图2,图2为本发明实施例的一种数据存储系统图,包括:
第一存储模块201,用于将待存储数据保存到系统数据库中;
获取数据模块202,用于获取保存失败的待存储数据;
第二存储模块203,用于将保存失败的待存储数据保存到缓存服务器中;
第三存储模块204,用于将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中,直至系统数据库中保存保存失败的待存储数据。
本发明提供的一种数据存储系统,是通过设置一个缓存服务器,利用缓存服务器的缓存功能,将系统数据库保存失败的待存储数据暂存在缓存服务器中,再将缓存服务器中暂存的保存失败的待存储数据保存到系统数据库中。本发明实现了系统数据库对待保存数据的完整保存,保证了数据的安全性与完整性。
需要说明的是,本发明实施例的系统是应用上述数据存储方法的系统,则上述数据存储方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
优选地,第三存储模块204,具体用于,
每隔预设时间周期,将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中。
优选地,第三存储模块204,具体还用于,
当缓存服务器中存储的保存失败的待存储数据容量超过预设阈值,将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中。
优选地,在第三存储模块204之前,数据存储系统还包括:
确定模块,用于确定缓存服务器中是否存储有保存失败的待存储数据;
第三存储模块204,具体用于,
若缓存服务器中存储有保存失败的待存储数据,将缓存服务器中存储的保存失败的待存储数据存储到系统数据库中。
优选地,在第三存储模块204之后,数据存储系统还包括:
清除模块,用于清除缓存服务器中存储的已保存到系统数据库中的保存失败的待存储数据。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。