发明内容
有鉴于此,本说明书提供实现分布式缓存的方法、装置、系统及缓存服务器以实现及时更新缓存客户端的缓存。
在本说明书实施例的第一个方面,提供了一种应用于分布式缓存系统的缓存客户端的实现分布式缓存的方法。例如,该方法可以包括:主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求;接收缓存服务器针对请求反馈的版本信息;将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围;根据变更版本范围,从数据源中获取变更后数据;将所获取的变更后数据缓存到缓存客户端本地。
在本说明书实施例的第二个方面,提供了一种配置于分布式缓存系统的缓存客户端的实现分布式缓存的装置。例如,该装置可以包括:主动请求单元,可以用于主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求;接收版本单元,可以用于接收缓存服务器针对请求反馈的版本信息;确定范围单元,可以用于将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围;获取数据单元,可以用于根据变更版本范围,从数据源中获取变更后数据;缓存更新单元,用于将所获取的变更后数据缓存到缓存客户端本地。
在本说明书实施例的第三个方面,提供了一种应用于分布式缓存系统的缓存服务器的实现分布式缓存的方法。例如,该方法可以包括:接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求;针对请求向缓存客户端反馈版本信息,以便缓存客户端将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据变更版本范围,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到缓存客户端本地。
在本说明书实施例的第四个方面,提供了一种配置于分布式缓存系统的缓存服务器的实现分布式缓存的装置。例如,该装置可以包括:接收请求单元,可以用于接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求;版本反馈单元,可以用于针对请求向缓存客户端反馈版本信息,以便缓存客户端将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据变更版本范围,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到缓存客户端本地。
在本说明书实施例的第五个方面,提供了一种分布式缓存系统。例如,该系统可以包括:缓存客户端,可以用于主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求,接收缓存服务器针对请求反馈的版本信息,将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据变更版本范围,从数据源中获取变更后数据,将所获取的变更后数据缓存到本地;缓存服务器,可以用于接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求,针对请求向缓存客户端反馈版本信息。
在本说明书实施例的第六个方面,提供了一种缓存服务器。例如,该缓存服务器可以包括:缓存中心服务器以及版本管理服务器;其中,缓存中心服务器,可以用于将变更后的数据写入数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识;其中,版本管理服务器,可以用于接收缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存变更后数据的版本信息;以及,接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求,针对请求向缓存客户端反馈版本信息,以使得缓存客户端将版本信息与缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,根据变更版本范围,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到缓存客户端本地。
在本说明书实施例的第七个方面,提供了一种缓存服务器。例如,该缓存服务器可以包括:缓存中心服务器以及版本管理服务器;其中,缓存中心服务器,可以用于将变更后的数据写入数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识;其中,版本管理服务器,可以用于接收缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存变更后数据的版本信息,其中,变更后数据的版本信息包括变更后数据的最新版本标识与缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围;以及,接收分布式缓存系统的缓存客户端主动周期性地发出的获取变更后数据的版本信息的请求,针对请求向缓存客户端反馈版本信息,以使得缓存客户端根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到缓存客户端本地。
可见本说明书具有如下有益效果:
由于本说明书实施例在缓存客户端主动周期性地向分布式缓存系统的缓存服务器发出获取变更后数据的版本信息的请求,因此,可以主动从缓存服务器获得版本信息,根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器端逐一通知各个缓存客户端,可以避免缓存服务器发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
针对现有技术缓存服务器端依赖记录表记录的IP和主机名向缓存客户端发送变更通知导致的缓存客户端更新不及时的问题,本申请的发明人发现在缓存客户端侧主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求,可以主动从缓存服务器侧获得版本信息,根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器端逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。另外,由于缓存客户端侧主动从缓存服务器侧获取变更后数据的版本信息,因此,已经下线的缓存客户端相当于自动取消了缓存更新的需求,因此,缓存客户端的下线不会导致无法同步的缓存客户端增多,使分布式缓存系统更加稳定。
基于上述分析,本申请实施例提供了如下的实现分布式缓存的方法、装置及系统。
例如,如图1所示,为本申请实施例分布式缓存系统的组网示意图。如图1所示,本申请实施例分布式缓存系统可以包括缓存服务器侧101,缓存客户端侧102的若干个缓存客户端1021,以及数据源103。例如,数据源103可以为用于长期存储数据的数据库。缓存客户端1021可以是部署在寄主服务器中的功能组件,用于提供数据缓存记录功能。在一个分布式缓存系统中,可以包括多个寄主服务器,一个寄主服务器上可以部署一个或多个缓存客户端。
下面,结合图2对本申请实施例应用于缓存客户端侧的实现分布式缓存的方法进行详细说明。例如,该方法可以包括:
S210、主动周期性地向分布式缓存系统的缓存服务器端发出获取变更后数据的版本信息的请求。
例如,在一些可能的实施方式中,所述缓存客户端侧可以设置有客户端心跳触发模块。例如,可以一个寄主服务器设置一个客户端心跳触发模块。该客户端心跳触发模块可以与缓存服务器建立连接。由所述客户端心跳触发模块以心跳的方式主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求。再例如,在另一些可能的实施方式中,可以在缓存客户端内设置定时器事件,由各个缓存客户端通过自身的定时器事件分别主动周期性地向分布式缓存系统的缓存服务器端发出获取变更后数据的版本信息的请求。
其中,变更后数据的版本信息,可以为变更后数据的最新版本标识,或者,可以为变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围。
S220、接收所述缓存服务器端针对所述请求反馈的版本信息。
S230、根据所述版本信息,从数据源中获取所述变更后数据。
在一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识,缓存客户端可以将所获取的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识进行比较以确定变更版本范围,从数据源中获取所述变更版本范围对应的数据。例如,假设所接收的版本信息为变更后数据的最新版本标识[1924],缓存客户端自身已缓存数据的当前版本标识为[1915]。通过将两个版本标识进行比较,可以确定变更版本范围为(1915,1924],进而从数据源中读取出如图3所示版本范围在(1915,1924]内的数据。需要说明的是,该图3所示的数据仅为部分示意图,本发明对数据的内容、格式以及对数据的版本标识的设置方式并不进行限制。
在另一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围,则缓存客户端侧可以从数据源中获取所述变更版本范围对应的数据。
S240、将所获取的变更后数据缓存到所述缓存客户端侧本地。
例如,对于在缓存客户端侧设置客户端心跳触发模块的实施方式来说,从数据源获取变更后数据之后,客户端心跳触发模块可以触发该寄主服务器上部署的缓存客户端进行缓存刷新操作,进而缓存客户端可以将所获取的变更后数据缓存到本地。需要说明的是,此处的本地可以指缓存客户端所在寄主服务器为该缓存客户端分配的本地存储空间。
由于本申请实施例在缓存客户端侧主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求,缓存客户端侧可以主动从缓存服务器侧获得版本信息,根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器侧逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存系统的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。其中:
缓存中心服务器1011,可以用于将变更后的数据写入数据源103,以及,主动周期性地向版本管理服务器1012发送变更后数据的最新版本标识。例如,如图4所示,可以在缓存中心服务器1011处设置服务器心跳触发模块105,缓存中心服务器1011可以将变更后数据的最新版本标识提交给服务器心跳触发模块105,该服务器心跳触发模块105与版本管理服务器1012建立连接,以心跳的方式主动周期性地向版本管理服务器1012发送该最新版本标识。
版本管理服务器1012,可以用于接收所述缓存中心服务器1011主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。例如,版本管理服务器1012可以将缓存中心服务器1011发送的最新版本标识作为变更后数据的版本信息保存下来。例如,版本管理服务器1012保存的信息可以包括数据的类型、数据的名称、数据的最新版本标识等。
在该实施方式中,可以在缓存客户端侧主动周期性地向该版本管理服务器1012发出获取变更后数据的版本信息的请求,接收该版本管理服务器1012针对所述请求反馈的版本信息。例如,如图4所示,可以由缓存客户端侧设置的客户端心跳触发模块104以心跳方式主动周期性地向版本管理服务器1012发出获取所述版本信息的请求,接收版本管理服务器1012反馈的版本信息,在根据版本信息从数据源103获取变更后数据之后,触发缓存客户端1021将变更后数据缓存到本地。
由于该实施方式的缓存中心服务器不需要处理缓存客户端获取版本信息的请求,由专门的版本管理服务器来接收以及处理缓存客户端获取版本信息的请求,因此,版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存系统的稳定性。
与上述应用于分布式缓存系统的缓存客户端侧的实现分布式缓存的方法相对应的,本申请实施例还提供了一种实现分布式缓存的装置,配置于分布式缓存系统的缓存客户端侧。
例如,参见图5,为本申请实施例公开的配置于缓存客户端侧的实现分布式缓存的装置结构示意图。如图5所示,该装置可以包括:
主动请求单元510,可以用于主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求。例如,在一些可能的实施方式中,所述缓存客户端侧可以设置有客户端心跳触发模块。所述主动请求单元510,可以用于通过所述客户端心跳触发模块以心跳的方式主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求。接收版本单元520,可以用于接收所述缓存服务器侧针对所述请求反馈的版本信息。获取数据单元530,可以用于根据所述版本信息,从数据源中获取所述变更后数据。缓存更新单元540,可以用于将所获取的变更后数据缓存到所述缓存客户端侧本地。
由于本申请实施例的主动请求单元510在缓存客户端侧主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求,接收版本单元520可以主动从缓存服务器侧获得版本信息,进而由获取数据单元530根据版本信息从数据源中获取变更后数据,并由缓存更新单元540进行缓存刷新,从而无需等待缓存服务器侧逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
在一些可能的实施方式中,变更后数据的版本信息可以为变更后数据的最新版本标识,所述获取数据单元530,可以用于将所获取的最新版本标识与所述缓存客户端侧自身已缓存数据的当前版本标识进行比较以确定变更版本范围,从数据源中获取所述变更版本范围对应的数据。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存系统的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。其中,所述缓存中心服务器1011,可以用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识。所述版本管理服务器1012,可以用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。相应地,本申请实施例公开的装置的主动请求单元510,可以用于主动周期性地向所述缓存服务器侧的版本管理服务器发出获取变更后数据的版本信息的请求。所述接收版本单元520,可以用于接收所述版本管理服务器针对所述请求反馈的版本信息。
另外,本申请实施例还提供了一种应用于分布式缓存系统的缓存服务器侧的实现分布式缓存的方法。例如,参见图6,为本申请实施例公开的应用于缓存服务器侧的实现分布式缓存的方法流程示意图。如图6所示,该方法可以包括:
S610、接收分布式缓存系统的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求。
例如,分布式缓存系统的缓存服务器侧可以从管理端界面或者其他任意消息来源接收数据变更的事件,将变更后的数据写入数据源,以及,为变更后的数据定义版本标识,保存变更后数据的版本信息。
S620、针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
在一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识。
在另一些可能的实现方式中,变更后数据的版本信息可以为变更后数据的最新版本标识与所述缓存客户端自身已缓存数据的当前版本标识的比较结果所确定的变更版本范围。在该实现方式中,缓存服务器侧可以记录各个缓存客户端已缓存数据的当前版本标识,在为变更后的数据定义最新版本标识之后,可以将该最新版本标识分别与各个缓存客户端自身已缓存数据的当前版本标识进行比较,对应得到各个缓存客户端的变更版本范围。
由于本申请实施例的缓存服务器侧可以接收到缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,因此,只需针对该请求反馈版本信息,缓存客户端侧即可根据版本信息从数据源中获取变更后数据,并进行缓存刷新,从而无需等待缓存服务器侧逐一通知各个缓存客户端,可以避免缓存服务器侧发送大量通知导致的耗时问题,使缓存客户端的缓存数据得以及时更新。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存系统的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。该实现分布式缓存的方法可以应用于版本管理服务器1012。其中,所述缓存中心服务器1011,可以用于将变更后的数据写入所述数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识。例如,可以在缓存中心服务器1011处设置服务器心跳触发模块105,缓存中心服务器1011可以将变更后数据的最新版本标识提交给服务器心跳触发模块105,该服务器心跳触发模块105与版本管理服务器1012建立连接,以心跳的方式主动周期性地向版本管理服务器1012发送该最新版本标识。相应地,所述版本管理服务器1012还可以接收所述缓存中心服务器1011主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
由于该实施方式的缓存中心服务器不需要处理缓存客户端获取版本信息的请求,由专门的版本管理服务器来接收以及处理缓存客户端获取版本信息的请求,因此,版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存系统的稳定性。
与上述应用于分布式缓存系统的缓存服务器侧的实现分布式缓存的方法相对应的,本申请实施例还提供了一种实现分布式缓存的装置,配置于分布式缓存系统的缓存服务器侧。
例如,参见图7,为本申请实施例公开的配置于缓存服务器侧的实现分布式缓存的装置结构示意图。如图7所示,该装置可以包括:
接收请求单元710,可以用于接收分布式缓存系统的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求。版本反馈单元720,可以用于针对所述请求向所述缓存客户端侧反馈版本信息,以便所述缓存客户端侧根据版本信息,从数据源中获取变更后数据,以及,将所获取的变更后数据缓存到所述缓存客户端侧本地。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,本申请实施例将对数据源的读/写以及对缓存客户端侧请求的响应分别部署在两个不同的服务器上。如图4所示,所述分布式缓存系统的缓存服务器侧可以包括缓存中心服务器1011以及版本管理服务器1012。该实现分布式缓存的装置可以配置于版本管理服务器1012。其中,所缓存中心服务器1011,可以用于将变更后的数据写入所述数据源,以及,主动周期性地向所述版本管理服务器发送变更后数据的最新版本标识,所述配置于版本管理服务器1012的装置还可以包括版本保存单元730,可以用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息。
该实施方式中的版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存系统的稳定性。
与上述实现分布式缓存的方法相对应的,本申请实施例还提供了一种分布式缓存系统。例如,参见图1,为本申请实施例公开的分布式缓存系统的结构示意图。如图1所示,该系统可以包括:缓存客户端侧102,可以用于主动周期性地向分布式缓存系统的缓存服务器侧发出获取变更后数据的版本信息的请求,接收所述缓存服务器侧针对所述请求反馈的版本信息,根据所述版本信息,从数据源中获取所述变更后数据,将所获取的变更后数据缓存到本地。缓存服务器侧101,可以用于接收分布式缓存系统的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
其中,缓存客户端侧102可以包括若干个缓存客户端1021。缓存客户端1021可以是部署在寄主服务器中的功能组件,用于提供数据缓存记录功能。在一个分布式缓存系统中,可以包括多个寄主服务器,一个寄主服务器上可以部署一个或多个缓存客户端。
在一些可能的实施方式中,为了不影响缓存服务器侧对数据源的读/写速度,如图4所示,本申请实施例所述缓存服务器侧101可以包括缓存中心服务器1011以及版本管理服务器1012。
其中,所述缓存中心服务器1011,具体可以用于将变更后的数据写入所述数据源,以及,主动周期性地向版本管理服务器发送变更后数据的最新版本标识。
其中,所述版本管理服务器1012,具体可以用于接收所述缓存中心服务器主动周期性地发送的变更后数据的最新版本标识,根据所接收的最新版本标识保存所述变更后数据的版本信息;以及,接收分布式缓存系统的缓存客户端侧主动周期性地发出的获取变更后数据的版本信息的请求,针对所述请求向所述缓存客户端反馈版本信息。
在该实施方式中,版本管理服务器可以分担缓存中心服务器的压力,不影响缓存中心服务器对数据源的读写速度,缓存客户端的请求也可以及时得到响应,提高了分布式缓存系统的稳定性。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。