本发明专利技术提供一种缓存数据的更新方法、数据使用端和系统,缓存数据的更新方法包括:数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,然后,从数据库加载配置数据,构造缓存数据对象,将缓存数据对象缓存在当前的主用槽位中,形成槽位索引,指向该当前的主用槽位,当触发缓存数据的更新时,数据使用端从数据库加载更新后的配置数据,构造更新后的缓存数据对象,并将更新后的缓存数据对象缓存在备用槽位中;然后,将当前主用槽位切换为备用槽位,当前备用槽位切换为主用槽位,将槽位索引的指向更新为切换后的当前主用槽位。本发明专利技术保证了数据使用端在缓存更新过程或者缓存更新失败,均有可用的缓存数据。
【技术实现步骤摘要】
本专利技术涉及通信
,特别涉及一种缓存数据的更新方法、数据使用端和系统。
技术介绍
在网络中,有大量的配置数据,这些配置数据是对业务的提炼,通过对配置数据的变更可以实现对各种不同业务的支撑。配置数据一般保存在数据库中,数据使用端在需要配置数据时,从数据库中直接获取。而随着网络规模的不断扩大,其所需处理的业务量不断增多,目前,一般采取将配置数据预先加载到缓存区域中,以缓解数据库不断接收大量的配置数据查询的压力,那么数据库中的数据与缓存区域的配置数据之间的同步更新显得十分重要。目前,关于数据库中的配置数据与缓存区域的缓存配置数据对象之间的同步更新的方法主要有两种,分别为定时更新和按需更新。定时更新是设定一定时间,缓存配置数据对象根据数据库更新情况进行更新,即直接删除及替换原有数据;按需更新指的是访问缓存配置数据对象时,先判断下本地缓存数据对象是否需要更新,也就是从数据库获取一份新配置数据,然后和现有缓存配置数据进行比较,如果数据库规则数据与缓存配置数据不同,则将缓存配置数据进行更新,即直接删除及替换原有数据。在缓存配置数据更新过程中,缓存配置数据的更新现有技术会直接删除及替换原有数据。这样,一旦更新过程中出错,新版本和原有版本的缓存数据都无法使用,从而无法保证有可用的缓存数据。
技术实现思路
本专利技术提供一种缓存数据的更新方法、数据使用端和系统,以保证有可用的缓存数据。本专利技术提供一种缓存数据的更新方法,其数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,包括:数据使用端从数据库加载配置数据,构造缓存数据对象,将缓存数据对象缓存在当前的主用槽位中,形成槽位索引,指向该当前的主用槽位;当触发缓存数据对象的更新时,数据使用端从数据库加载更新后的配置数据,构造更新后的缓存数据对象,保留当前主用槽位中的缓存数据对象,并将更新后的缓存数据对象缓存在备用槽位中;然后,将当前主用槽位切换为备用槽位,当前备用槽位切换为主用槽位,将槽位索引的指向更新为切换后的当前主用槽位。优选地,所述主用槽位和备用槽位包括:2个元素的数组。优选地,在所述数据使用端从数据库加载配置数据之前,进一步包括:配置服务器接收并保存数据使用端发送的注册信息,所述注册信息包括:所述数据使用端的IP地址、通知接收端口号、使用配置数据的名称信息;根据所述注册信息,生成对应的配置数据版本号;将所述配置数据版本号发送给所述数据使用端,所述配置数据版本号包括:配置数据名称和版本号字符串;所述数据使用端从数据库加载配置数据包括:所述数据使用端根据接收到的所述配置数据版本号,从数据库加载对应的配置数据;触发缓存数据对象的更新包括:数据变更端向配置服务器发送新的配置数据版本号;配置服务器向所述数据使用端发送更新所述配置数据版本号通知,该通知中携带新的配置数据版本号,触发所述数据使用端开启新的线程;所述数据使用端从数据库加载更新后的配置数据包括:所述数据使用端接收所述通知,从中获取所述新的配置数据版本号,根据所述新的配置数据版本号,从所述数据库加载新的配置数据。优选地,向所述数据使用端发送更新所述配置数据版本号通知,包括:所述配置服务器遍历当前注册的数据使用端,查找使用了所述配置数据的所有数据使用端,向查找到的所有数据使用端发送更新所述配置数据版本号通知。优选地,所述数据使用端接收所述通知包括:所述数据使用端启动socket监听,监听通知接收端口用以接收配置服务器发来的所述通知。优选地,判断所述数据使用端是否完成所述加载新的配置数据,包括:所述配置服务器接收所述数据使用端发送的所述槽位索引对应的配置信息版本号,与所述配置服务器中存在的所述新的配置信息版本号进行比对,如果一致,则完成所述加载新的配置数据,否则,所述加载新的配置数据失败。本专利技术还提供一种数据使用端,包括:形成单元,用于初始化形成缓存数据对象的主用槽位和备用槽位;缓存执行单元,用于从外部数据库加载配置数据,构造缓存数据对象,将缓存数据对象缓存在当前的主用槽位中,形成槽位索引,指向该当前的主用槽位;当被触发更新操作时,从外部数据库加载更新后的配置数据,构造更新后的缓存数据对象,并将更新后的缓存数据对象缓存在备用槽位中;控制单元,用于控制所述缓存执行单元在将更新后的缓存数据对象缓存在备用槽位中时,保留当前主用槽位中的缓存数据对象,在缓存执行单元将将更新后的缓存数据对象缓存在备用槽位中完毕后,将当前主用槽位切换为备用槽位,当前备用槽位切换为主用槽位,将槽位索引的指向更新为切换后的当前主用槽位。优选地,所述形成单元,用于生成2个元素的数组,作为所述主用槽位和备用槽位。本专利技术还提供一种缓存数据的更新系统,包括:前面所述的数据使用端,配置服务器,数据变更端以及数据库,配置服务器,用于通知所述数据使用端需要加载及更新的配置数据的索引,数据变更端,用于在数据库配置数据变更后,触发配置服务器通知所述数据使用端更新的配置数据的索引。优选地,配置服务器包括:用于接收并保存数据使用端发送的注册信息,所述注册信息包括:所述数据使用端的IP地址、通知接收端口号、使用配置数据的名称信息;用于根据所述注册信息,生成对应的配置数据版本号;用于将所述配置数据版本号发送给所述数据使用端,所述配置数据版本号包括:配置数据名称和版本号字符串。本
技术实现思路
提供了一种缓存数据的更新方法、数据使用端和系统,能够达到如下有益效果:1.保证有可用的缓存数据。数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,当从数据库加载配置数据,构造缓存数据对象,将缓存数据对象缓存在当前的主用槽位中,形成槽位索引,指向该当前的主用槽位,即可直接调用主槽位中的缓存数据使用;当触发缓存数据的更新时,所述数据库使用端保留当前主用槽位中的缓存数据,并将更新的缓存数据对象缓存在备用槽位中,并不会影响当前主槽位中的缓存数据;当缓存数据对象更新过程中或更新失败,数据使用端仍可调用当前主槽位中的缓存数据;当缓存数据对象更新成功后,当前主用槽位切换为备用槽位,当前备用槽位切换为主用槽位,将槽位索引的指向更新为切换后的主用槽位。这样,即使更新过程出错,还可以使用主槽位中的原有版本数据,从而保证有可用的缓存数据。2.提高业务处理效率。现有技术中,缓存数据更新过程中,需对缓存区域进行锁保护,使得缓存数据更新过程不可用,导致业务处理暂停,而本专利技术数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,其中,主槽位用于缓存当前业务处理过程中所用的缓存数据,备用槽位用于缓存数据库加载更新后的配置数据,即备用槽位缓存数据更新过程不会影响主槽位中缓存数据的应用,因此,在缓存数据更新过程中或者缓存数据更新失败,业务均可连续处理,从而有效提高了业务处理效率。3、保证缓存数据及时更新。在本专利技术实施例中当前第1页1 2 3 本文档来自技高网...
【技术保护点】
一种缓存数据的更新方法,其特征在于,数据使用端初始化形成缓存数据对象的主用槽位和备用槽位,包括:数据使用端从数据库加载配置数据,构造缓存数据对象,将缓存数据对象缓存在当前的主用槽位中,形成槽位索引,指向该当前的主用槽位;当触发缓存数据对象的更新时,数据使用端从数据库加载更新后的配置数据,构造更新后的缓存数据对象,保留当前主用槽位中的缓存数据对象,并将更新后的缓存数据对象缓存在备用槽位中;然后,将当前主用槽位切换为备用槽位,当前备用槽位切换为主用槽位,将槽位索引的指向更新为切换后的当前主用槽位。
【技术特征摘要】
【专利技术属性】
技术研发人员:韩全磊,
申请(专利权)人:浪潮通信信息系统有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。