一种数据缓存同步方法、服务器和客户端的制作方法_4

文档序号:9547277阅读:来源:国知局
Increment ; 对于不需要更新的缓存数据,更新标志设置为None。
[0143] 步骤410 :判断更新标志是All,None或者Increment,当更新标志是All时,执 行步骤411 ;当更新标志是None时,执行步骤412 ;当更新标志是Increment时,执行步骤 413 ;
[0144] 步骤411 :清空缓存数据,并插入所述服务器发送的需要更新的数据,并结束当前 流程;
[0145] 该种方式主要适用于数据更新量较大的缓存数据,例如:对于表中的缓存数据来 说,则可以通过整体删除表中所有的缓存数据,并将从服务器中获取到的数据插入表中。
[0146] 步骤412 :不修改缓存数据,并结束当前流程;
[0147] 步骤413:删除需要更新的缓存字段,并在删除的需要更新的缓存字段处,插入对 应的服务器发送的需要更新的数据。
[0148] 例如:对于一段数据,仅对数据中某一段字段进行了修改,则通过删除这修改字段 对应的缓存字段,然后将这修改的字段插入相应的位置;如果对于一段数据,服务器中删除 了其中的一段字段,则对该删除的一段字段以标记的方式使客户端获取到,客户端就可以 根据这标记删除对应的字段,实现缓存更新。
[0149] 如图5所示,本发明实施例提供一种服务器,该服务器包括:
[0150] 缓存组件单元501,用于保存外设的每一个客户端对应的缓存规则;
[0151] 第一发送单元502,用于确定外设的目标客户端,并将缓存组件单元501保存的外 设的目标客户端对应的至少一种缓存规则发送给外设的目标客户端;
[0152] 确定单元503,用于确定所述外设的目标客户端需要更新的数据;
[0153] 第二发送单元504,用于根据第一发送单元502发送的所述外设的目标客户端对 应的至少一种缓存规则,将确定单元503确定出的外设的目标客户端需要更新的数据发送 给外设的目标客户端。
[0154] 在本发明又一个实施例中,缓存组件单元501,用于定义取数类型、缓存同步策略、 客户端存储方式和缓存依赖中的任意一种或多种;将定义封装为缓存元数据;并将缓存元 数据加载到服务器。
[0155] 在本发明另一实施例中,确定单元503,用于确定缓存数据的版本;将缓存数据版 本与服务器中对应的数据版本进行对比;当缓存数据版本与服务器中对应的数据版本不同 时,确定服务器中对应的数据版本对应的数据为目标客户端需要更新的数据。
[0156] 在本发明另一实施例中,确定单元503,用于确定目标客户端的取数类型、缓存依 赖中的第一权限版本和第一缓存依赖项版本;根据目标客户端的取数类型,实例化对应的 同步提供程序;控制同步提供程序获取服务器中对应的第二权限版本和第二缓存依赖项版 本;判断第一权限版本和第一缓存依赖项版本分别与对应的第二权限版本和第二缓存依赖 项版本是否相同,如果是,则确定目标客户端的缓存数据的版本,并根据目标客户端的缓存 数据的版本,确定目标客户端需要更新的数据;否则,发送对应的第二权限版本和第二缓存 依赖项版本对应的数据给目标客户端。
[0157] 在本发明另一实施例中,第二发送单元504,用于根据缓存组件单元501定义的缓 存同步策略,设置缓存数据更新标志为All,发送缓存数据对应的所有数据给外设的目标客 户端;或者,根据缓存组件单元501定义的缓存同步策略,确定缓存数据中各个缓存字段的 时间戳;设置缓存数据更新标志为Increment,将对应的数据字段的时间戳与缓存数据中 各个缓存字段的时间戳进行对比,确定对应的数据字段的时间戳增量;利用时间戳增量,提 供更新数据字段和删除数据字段给外设的目标客户端。
[0158] 如图6所示,本发明实施例提供一种客户端,该客户端包括:
[0159] 加载单元601,用于获取并加载至少一种缓存规则;
[0160] 获取单元602,用于根据加载单元601加载的至少一种缓存规则,获取外设的服务 器发送的需要更新的数据;
[0161] 更新单元603,用于利用获取单元602获取到的需要更新的数据,更新客户端中的 缓存数据。
[0162] 在本发明又一实施例中,上述客户端,进一步包括:第一确定单元(图中未示出), 其中,
[0163] 第一确定单元,用于确定缓存规则的编号与缓存规则的映射关系;
[0164] 加载单元601,用于根据第一确定单元确定的映射关系,提供至少一种缓存规则的 编号给外设的服务器,并获取外设的服务器发送的与至少一种缓存规则的编号对应的至少 一种缓存规则。
[0165] 在本发明另一实施例中,上述客户端,进一步包括:第二确定单元(图中未示出), 其中,
[0166] 第二确定单元,用于确定缓存数据的版本以及加载单元601加载的至少一种缓存 规则中的缓存依赖中的第一权限版本和第一缓存依赖项版本中的任意一个或多个;将缓存 数据的版本、缓存依赖中的第一权限版本和第一缓存依赖项版本中的任意一个或多个发送 给外设的服务器;
[0167] 获取单元602,用于当外设的服务器确定出缓存数据的版本、缓存依赖中的第一权 限版本和第一缓存依赖项版本和中的任意一个与服务器中对应的版本不同时,获取外设的 服务器发送的需要更新的数据。
[0168] 在本发明另一实施例中,上述客户端,进一步包括:第一判断单元和构建单元(图 中未示出),其中,
[0169] 第一判断单元,用于判断加载单元601加载的至少一种缓存规则是否已启用,如 果是,触发构建单元;
[0170] 构建单元,用于接收到第一判断单元的触发时,根据至少一种缓存规则中的存储 定义和数据类型,在本地数据库构建缓存数据表,并将缓存数据存储到缓存数据表中。
[0171] 在本发明另一实施例中,上述客户端,进一步包括:第二判断单元(图中未示出), 其中,
[0172] 第二判断单元,用于接收外设的服务器发送的缓存数据的更新标志;判断所述更 新标志是All,None或者Increment ;
[0173] 更新单元603,用于当第二判断单元判断出缓存数据的更新标志为All时,清空 缓存数据,并插入所述服务器发送的需要更新的数据;当第二判断单元判断出缓存数据 的更新标志为None时,不修改缓存数据;当第二判断单元判断出缓存数据的更新标志为 Increment时,则删除需要更新的缓存字段,并在删除的需要更新的缓存字段处,插入对应 的服务器发送的需要更新的数据。
[0174] 本发明实施例提供的方案,至少能够达到如下有益效果:
[0175] 1.通过在服务器中保存每一个客户端对应的缓存规则;确定目标客户端,并将所 述目标客户端对应的至少一种缓存规则发送给所述目标客户端,使得客户端可根据自身需 求从服务器中获取到相应的规则,而避免了为每一个客户端单独设置缓存规则,另外,通过 确定所述目标客户端需要更新的数据,实现了在服务器中筛选出对目标客户端需要更新的 数据,而无需将服务器中所有的数据发送给客户端,也无需客户端对数据进行筛选和比较, 从而提高了客户端的缓存效率。
[0176] 2.通过定义取数类型、缓存同步策略、客户端存储方式和缓存依赖中的任意一种 或多种;将所述定义封装为缓存元数据;将所述缓存元数据加载到服务器,该过程中的缓 存元数据可根据客户需求进行定义、配置和扩展,使得应用程序可以根据实际情况灵活配 置,提高了缓存数据的自动化。另外,定义时,可以增加过滤条件、可以选择字段列表、也可 以设置数据权限,这就从多个维度上保证了用户更新缓存数据时仅需要同步用户实际使用 到的数据,从而提高数据的更新效率。
[0177] 3.由于客户端缓存数据的规则是从服务器中获取,而无需人工或代码干预,同时, 客户端缓存数据的同步过程对客户程序完全透明,完全自动化,减少了人工操作,降低了开 发成本。
[0178] 4.本发明实施例支持多种同步策略、存储方式的灵活配置,可以根据缓存数据的 更新数量和存储方式,选择不同的同步策略进行缓存同步,能更好的适应不同的应用场景。 另外,同步数据传输过程中增加了压缩处理,进一步降低了在传输过程中的数据量,提高了 传输效率。
[0179] 5.通过判断客户端提供的缓存数据版本、第一权限版本和第一缓存依赖项版本与 服务器中对应的数据版本、第二权限版本和第二缓存依赖项版本是否完全相同,来确定需 要更新的数据,由于数据发生变化时,对应的版本也将发生变化,那么,通过这一判断过程 可以比较快捷确定需要更新的数据,而通过对比数据版本、权限版本和缓存依赖项版本可 以提高确定需要更新的数据更加准确。
[0180] 需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体 或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在 任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵盖非 排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素, 而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固 有的要素。在没有更多限制的情况下,由语句"包括一个〃〃 〃〃 〃〃"限定的要素,并不 排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0181] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种数据缓存同步方法,其特征在于,应用于服务器中,在所述服务器中保存每一个 客户端对应的缓存规则;还包括: 确定目标客户端,并将所述目标客户端对应的至少一种缓存规则发送给所述目标客户 端;
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1