著录项信息
专利名称 | 分布式缓存服务实现方法、装置、终端、服务器及系统 |
申请号 | CN201710379582.2 | 申请日期 | 2017-05-25 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2017-08-18 | 公开/公告号 | CN107071059A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市南山区高新区科技中一路腾讯大厦35层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 王亚辉;郑规 |
代理机构 | 广州三环专利商标代理有限公司 | 代理人 | 郝传鑫;贾允 |
摘要
本发明提供了分布式缓存服务实现方法、装置、终端、服务器及系统,提出了一种混合了本地缓存(客户端)和远端分布式缓存(服务器)的新的缓存服务实现方案,本发明提供的缓存服务实现方案中允许用户在某些业务场景下将缓存数据前移到用户进程空间内(即本地缓存)以获得较高的读写性能,同时通过设置缓存监听策略和事务技术保证本地缓存的数据与远端分布式缓存中数据的一致性。
1.一种分布式缓存服务实现方法,其特征在于,所述方法包括:
第一客户端获取缓存策略,所述缓存策略包括缓存监听策略;根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略;第一客户端根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知;
服务器获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系;接收客户端发布的同步通知并根据所述同步通知更新本地数据;根据所述缓存配置表获取目标客户端,向所述目标客户端发布同步指令所述缓存监听策略包括无监听器模式、本地数据监听模式、全缓存监听模式和自动模式;所述无监听器模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知,但不接收服务器发布的同步指令;所述自动模式下,第一客户端的缓存监听策略能够在本地数据监听模式和全缓存监听模式之间被自动切换;所述本地数据监听模式和全缓存监听模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知;接收服务器发布的同步指令,并根据所述同步指令变更本地缓存的数据。
2.根据权利要求1所述的方法,其特征在于:
若客户端被设置为无监听器模式,则服务器不向所述客户端发布同步指令;
若客户端被设置为本地数据监听模式,则服务器监听目标数据,当目标数据发生变动时向所述客户端发布同步指令;所述目标数据为存储于服务器中并需要与所述客户端本地缓存的数据保持一致的数据;
若客户端被设置为全缓存监听模式,则服务器监听服务器中的全部数据,当服务器中的数据发生变动时向所述客户端发布同步指令;
若客户端被设置为自动模式模式,则服务器按照本地数据监听模式或全缓存监听模式为客户端发布同步指令,并自动在本地数据监听模式和全缓存监听模式之间进行切换。
3.一种分布式缓存服务实现方法,其特征在于,所述方法包括:
获取缓存策略,所述缓存策略包括缓存监听策略;所述缓存监听策略包括无监听器模式、本地数据监听模式、全缓存监听模式和自动模式;所述无监听器模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知,但不接收服务器发布的同步指令;所述自动模式下,第一客户端的缓存监听策略能够在本地数据监听模式和全缓存监听模式之间被自动切换;所述本地数据监听模式和全缓存监听模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知;接收服务器发布的同步指令,并根据所述同步指令变更本地缓存的数据;
根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略;
根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。
4.根据权利要求3所述的方法,其特征在于,所述根据所述缓存策略向用户提供缓存服务包括向用户提供数据读服务和数据写服务;
所述数据读服务包括:
获取读取目标数据的指令;
检查本地的缓存数据是否命中所述目标数据;
若未命中,则直接向服务器端请求目标数据;
若命中,则根据所述缓存策略判断所述目标数据是否为有效数据;若是,则直接返回所述目标数据;若否,则向服务器端请求目标数据;
获取服务器返回的目标数据并更新本地缓存的数据;
返回所述目标数据;
所述数据写服务包括:
响应于写操作指令,变更本地缓存的数据;
生成并向服务器发布同步通知,所述同步通知用于将所述写操作同步至服务器。
5.根据权利要求3所述的方法,其特征在于,所述缓存策略还包括缓存数据淘汰策略、缓存高低水位、缓存计算单位和/或缓存过期时间。
6.一种分布式缓存服务实现方法,其特征在于,所述方法包括:
获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系;所述缓存监听策略包括无监听器模式、本地数据监听模式、全缓存监听模式和自动模式;所述无监听器模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知,但不接收服务器发布的同步指令;所述自动模式下,第一客户端的缓存监听策略能够在本地数据监听模式和全缓存监听模式之间被自动切换;所述本地数据监听模式和全缓存监听模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知;接收服务器发布的同步指令,并根据所述同步指令变更本地缓存的数据;
接收客户端在提供缓存服务的过程中发布的同步通知并根据所述同步通知更新本地数据;
根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令。
7.根据权利要求6所述的方法,其特征在于,所述根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令包括:
根据所述缓存配置表获取目标客户端;
若不存在所述目标客户端,则不发布同步指令;
若存在所述目标客户端,则向缓存监听策略为本地数据监听模式的目标客户端以点对点的方式发布同步指令,向缓存监听策略为全缓存监听模式的客户端以广播方式发布同步指令。
8.一种分布式缓存服务实现装置,其特征在于,所述装置包括:
缓存配置管理模块,用于获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系;所述缓存监听策略包括无监听器模式、本地数据监听模式、全缓存监听模式和自动模式;所述无监听器模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知,但不接收服务器发布的同步指令;所述自动模式下,第一客户端的缓存监听策略能够在本地数据监听模式和全缓存监听模式之间被自动切换;所述本地数据监听模式和全缓存监听模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知;接收服务器发布的同步指令,并根据所述同步指令变更本地缓存的数据;
同步模块,用于接收客户端在提供缓存服务的过程中发布的同步通知并根据所述同步通知更新本地数据;
同步指令发布模块,用于根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令以使得所述目标客户端本地缓存的数据能够同步被更新。
9.根据权利要求8所述的装置,其特征在于,所述同步指令发布模块包括包括:
目标客户端获取单元,用于根据所述缓存配置表获取目标客户端;
同步指令发布单元,用于若不存在所述目标客户端,则不发布同步指令;若存在所述目标客户端,则向缓存监听策略为本地数据监听模式的目标客户端以点对点的方式发布同步指令,向缓存监听策略为全缓存监听模式的客户端以广播方式发布同步指令。
10.一种分布式缓存服务实现服务器,其特征在于,所述服务器包括权利要求8或9所述的一种分布式缓存服务实现装置。
11.一种分布式缓存服务实现装置,其特征在于,所述装置包括:
缓存策略获取模块,用于获取缓存策略,所述缓存策略包括缓存监听策略;所述缓存监听策略包括无监听器模式、本地数据监听模式、全缓存监听模式和自动模式;所述无监听器模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知,但不接收服务器发布的同步指令;所述自动模式下,第一客户端的缓存监听策略能够在本地数据监听模式和全缓存监听模式之间被自动切换;所述本地数据监听模式和全缓存监听模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知;接收服务器发布的同步指令,并根据所述同步指令变更本地缓存的数据;
配置信息处理模块,用于根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略;
缓存服务模块,用于根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。
12.根据权利要求11所述的装置,其特征在于,所述缓存服务模块包括读服务单元和写服务单元;
所述读服务单元包括:
读取指令获取模块,用于获取读取目标数据的指令;
缓存查询模块,用于检查本地的缓存数据是否命中所述目标数据;
读取指令实现模块,用于若未命中,则直接向服务器端请求目标数据;若命中,则根据所述缓存策略判断所述目标数据是否为有效数据;若是,则直接返回所述目标数据;若否,则向服务器端请求目标数据;
远程数据读取结果处理模块,用于获取服务器返回的目标数据并更新本地缓存的数据;返回所述目标数据;
所述写服务单元包括:
变更模块,用于响应于写操作指令,变更本地缓存的数据;
同步通知处理模块,用于生成并向服务器发布同步通知,所述同步通知用于将所述写操作同步至服务器。
13.一种分布式缓存服务实现终端,其特征在于,所述终端包括权利要求11或12所述的一种分布式缓存服务实现装置。
14.一种分布式缓存服务实现系统,其特征在于,所述系统包括权利要求8或9所述的一种分布式缓存服务实现装置和权利要求11或12所述的一种分布式缓存服务实现装置。
分布式缓存服务实现方法、装置、终端、服务器及系统\n技术领域\n[0001] 本发明涉及分布式计算领域,尤其涉及分布式缓存服务实现方法、装置、终端、服务器及系统。\n背景技术\n[0002] 分布式缓存服务使用独立的集群服务集中缓存数据,因此提供了很好的系统水平扩展能力、高吞吐量以及高容灾性,业界已经有许多非常成熟的分布式缓存产品例如Ehcache、Redis等。\n[0003] 然而,这些分布式缓存产品并没有在客户端提供具体的实现逻辑,即用户需要以这些分布式缓存产品为基础组件而自行实现本地缓存服务并且需要由用户自主维护本地数据与远程服务器中数据的一致性,从而加大了用户的使用难度。此外,用户每次对数据的访问必须通过网络交互来完成,这带来一定的读时延开销。\n发明内容\n[0004] 为了解决上述技术问题,本发明提出了分布式缓存服务实现方法、装置、终端、服务器及系统。本发明具体是以如下技术方案实现的:\n[0005] 第一方面,一种分布式缓存服务实现方法,所述方法包括:\n[0006] 第一客户端获取缓存策略,所述缓存策略包括缓存监听策略;根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略;第一客户端根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知;\n[0007] 服务器获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系;接收客户端发布的同步通知并根据所述同步通知更新本地数据;根据所述缓存配置表获取目标客户端,向所述目标客户端发布同步指令。\n[0008] 第二方面,一种分布式缓存服务实现方法,所述方法包括:\n[0009] 获取缓存策略,所述缓存策略包括缓存监听策略;\n[0010] 根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略;\n[0011] 根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。\n[0012] 第三方面,一种分布式缓存服务实现方法,所述方法包括:\n[0013] 获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系;\n[0014] 接收客户端在提供缓存服务的过程中发布的同步通知并根据所述同步通知更新本地数据;\n[0015] 根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令。\n[0016] 第四方面,一种分布式缓存服务实现装置,所述装置包括:\n[0017] 缓存配置管理模块,用于获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系;\n[0018] 同步模块,用于接收客户端在提供缓存服务的过程中发布的同步通知并根据所述同步通知更新本地数据;\n[0019] 同步指令发布模块,用于根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令以使得所述目标客户端本地缓存的数据能够同步被更新。\n[0020] 第五方面,一种分布式缓存服务实现装置,所述装置包括:\n[0021] 缓存策略获取模块,用于获取缓存策略,所述缓存策略包括缓存监听策略;\n[0022] 配置信息处理模块,用于根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略;\n[0023] 缓存服务模块,用于根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。\n[0024] 第六方面,一种分布式缓存服务实现系统,所述系统包括上述两种分布式缓存服务实现装置。\n[0025] 本发明提供了分布式缓存服务实现方法、装置、终端、服务器及系统,具有如下有益效果:\n[0026] 本发明混合了本地缓存(客户端)和远端分布式缓存(服务器)提出了一种新的缓存服务实现方案,本发明提供的缓存服务实现方案中允许用户在某些业务场景下将缓存数据前移到用户进程空间内(即本地缓存)以获得较高的读写性能,同时通过设置缓存监听策略和事务技术保证本地缓存的数据与远端分布式缓存中数据的一致性。\n附图说明\n[0027] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。\n[0028] 图1是本发明实施例提供的分布式缓存服务实现方法的应用环境图;\n[0029] 图2是本发明实施例提供的分布式缓存服务实现方法流程图;\n[0030] 图3是本发明实施例提供的现有技术中的数据访问示意图;\n[0031] 图4是本发明实施例提供的基于分布式缓存服务实现方法的数据访问示意图;\n[0032] 图5是本发明实施例提供的另一种分布式缓存服务实现方法流程图;\n[0033] 图6是本发明实施例提供的客户端提供读服务的方法流程图;\n[0034] 图7是本发明实施例提供的客户端提供写服务的方法流程图;\n[0035] 图8是本发明实施例提供的一种分布式缓存服务实现方法流程图;\n[0036] 图9是本发明实施例提供的服务器发布同步指令的方法流程图;\n[0037] 图10是本发明实施例提供的一种分布式缓存服务实现装置框图;\n[0038] 图11是本发明实施例提供的同步指令发布模块框图;\n[0039] 图12是本发明实施例提供的服务器结构示意图;\n[0040] 图13是本发明实施例提供的一种分布式缓存服务实现装置框图;\n[0041] 图14是本发明实施例提供的读服务单元框图;\n[0042] 图15是本发明实施例提供的写服务单元框图;\n[0043] 图16是本发明实施例提供的终端示意图。\n具体实施方式\n[0044] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。\n[0045] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。\n[0046] 本发明实施例提供了分布式缓存服务实现方法的应用环境图,如图1所示,所述分布式缓存服务实现方法可以应用于由终端110和服务器集群120构成的分布式系统之中。服务器集群120可以包括多个服务器节点。终端110可以有多个,比如终端110(1)和终端110(2)。\n[0047] 通常情况下,在分布式缓存系统中,在单机或对数据一致性要求不高的使用场景下,可以由用户自己在客户端实现一套内存驻留缓存服务来提高客户端的读性能,通常的做法是在用户进程空间中开辟一个内存堆管理缓存数据,或者基于第三方缓存组件(例如memcached)自行实现缓存管理逻辑。由于现有的第三方缓存组件均没有统一的接口规范,而用户又需要自行实现大部分的缓存管理工作,从而导致用户实现缓存管理的学习成本过高,影响了用户的缓存使用的体验效果。进一步地,现有的缓存组件也难以支持多客户端对服务器数据的并发读写,难以维护客户端本地与服务器中数据的一致性。\n[0048] 为在上述的使用场景中提升用户的缓存使用的体验效果,并维护客户端本地与服务器中数据的一致性,本发明实施例提供分布式缓存服务实现方法,所述方法可以应用于如图1所示的应用环境之中。\n[0049] 所述方法如图2所示,具体包括:\n[0050] S101.第一客户端获取缓存策略,所述缓存策略包括缓存监听策略。\n[0051] 具体地,服务器可以同时与多个客户端进行数据通信,也可以并发为多个客户端提供数据服务,而第一客户端仅泛指与服务器存在数据通信的某一个客户端。第一客户端内部可配置缓存策略。\n[0052] S102.第一客户端根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器。\n[0053] 所述缓存配置信息包括第一客户端的标识和所述缓存监听策略。\n[0054] 步骤S102即相当于第一客户端将自身的缓存监听策略向服务器进行注册的步骤,其目的在于服务器获悉第一客户端的缓存监听策略后,即可按照第一客户端的缓存监听策略为第一客户端提供缓存监听服务(向第一客户端发布同步指令)。\n[0055] S103.服务器获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系。\n[0056] 需要服务器为其提供缓存监听服务的客户端均会向服务器进行注册(步骤S102),服务器可以统一使用缓存配置表对各个服务端的缓存监听策略进行管理,因此缓存配置表用于记录客户端和缓存监听策略之间的对应关系。\n[0057] S104.第一客户端根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。\n[0058] 不论第一客户端设置了何种缓存监听策略,第一客户端均可以监听本地缓存数据的变动,将所述变动同步通知至服务器。其目的在于,始终保持服务器中的数据为最新数据。\n[0059] S105.接收客户端发布的同步通知并根据所述同步通知更新本地数据。\n[0060] S106.根据所述缓存配置表获取目标客户端,向所述目标客户端发布同步指令以使得所述目标客户端本地缓存的数据能够同步被更新。\n[0061] 若在步骤S105中服务器中的数据被某一个客户端发布的同步通知改变,则服务器即可根据各个客户端注册的缓存监听策略,向需要感知服务器中数据变动的客户端(目标客户端)发布同步指令以使得目标客户端的数据能够同步被更新,从而维护了目标客户端与服务器之间的数据一致性。\n[0062] 本发明实施例可以用于在客户端本地缓存热点数据以提高客户端本地的数据读性能,因此,本实施例中给出其推荐的几个主要应用场景:(1)数据访问过程中读多写少的业务;(2)数据访问过程中只读不写的业务;(3)数据访问过程中具有读写亲和性的业务。数据的读写会根据预设的算法被路由到同一个进程进行处理的业务即为具有读写亲和性的业务。比如,通常情况下,在某些游戏业务中,账号类和会话类的数据的访问业务为具有读写亲和性的业务,相应地,账号类和会话类的数据也是具有亲和性的数据。使用现有技术在分布式系统中进行对于账号类和会话类的数据的访问如图3所示,而使用本发明实施例中的方法来访问账号类和会话类如图4所示,可见,在本发明所提供的方法中可以将账号类和会话类数据前移至用户的进程空间,从而实现了客户端对于这类数据的高效读,进一步地,在对这类数据写操作中,客户端还可与服务器实时保持数据一致性。\n[0063] 进一步地,本实施例中着重描述缓存监听策略的具体分类以及在缓存服务实现过程中的使用方法。\n[0064] 所述缓存监听策略包括无监听器模式、本地数据监听模式、全缓存监听模式和自动模式;\n[0065] 所述无监听器模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知,但不接收服务器发布的同步指令。若某个客户端被注册为无监听器模式,则服务器不向所述客户端发布同步指令。\n[0066] 所述本地数据监听模式和全缓存监听模式下,第一客户端根据本地缓存的数据的变动向服务器发送同步通知;接收服务器发布的同步指令,并根据所述同步指令变更本地缓存的数据。\n[0067] 若某个客户端被注册为本地数据监听模式,则服务器监听目标数据,当目标数据发生变动时向所述客户端发布同步指令;所述目标数据为存储于服务器中并需要与所述客户端本地缓存的数据保持一致的数据。\n[0068] 若某个客户端被注册为全缓存监听模式,则服务器监听服务器中的全部数据,当服务器中的数据发生变动时向所述客户端发布同步指令。\n[0069] 若某个客户端被注册为自动模式,则服务器按照本地数据监听模式或全缓存监听模式为客户端发布同步指令,并能够自动在本地数据监听模式和全缓存监听模式之间进行切换。即缓存监听策略设置为自动模式的客户端,其实际使用的缓存监听策略能够被服务器在本地数据监听模式和全缓存监听模式之间自动切换。\n[0070] 具体地,服务器可以根据自身的具体运行情况对注册为自动模式的客户端的具体缓存监听策略进行自动切换。\n[0071] 在一个可行的实时例中,服务器根据其参与缓存服务的数据的统计量进行自动切换。若统计量过高,则切换为本地监听模式;若统计量较低,则切换为全缓存监听模式。\n[0072] 在另一个可行的实时例中,服务器根据自身的运行负荷进行自动切换。若运行负荷过高,则切换为本地监听模式;若运行负荷较低,则切换为全缓存监听模式。\n[0073] 本发明实施例混合了本地缓存(客户端)和远端分布式缓存(服务器)提出了一种新的缓存服务实现方案,所述实现方案也可命名为分布式就近缓存方法。本发明实施例能够自动为用户提供逻辑完整的缓存服务,并按照用户设定维护服务器与客户端的数据的一致性。进一步地,本发明实施例还提供了四种具体的缓存监听策略以满足用户在不同场景下对于缓存服务的需求,提升了用户体验。更进一步地,本发明提供的自动模式,可以使得服务器根据自身运行情况对于其向客户端提供的同步服务进行调整,以在不影响用户体验的基础上尽可能降低服务器负担,提升分布式缓存服务的性能。\n[0074] 本发明另一个实施例提供一种分布式缓存服务实现方法,所述方法应用于客户端,如图5所示,所述方法包括:\n[0075] S201.获取缓存策略,所述缓存策略包括缓存监听策略。\n[0076] 具体地,所述缓存策略还包括缓存数据淘汰策略、缓存高低水位、缓存计算单位和/或缓存过期时间。客户端可以根据缓存数据淘汰策略、缓存高低水位、缓存计算单位和/或缓存过期时间自主管理本地缓存的数据。\n[0077] S202.根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略。\n[0078] S203.根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。\n[0079] 具体地,所述根据所述缓存策略向用户提供缓存服务包括向用户提供数据读服务和数据写服务。\n[0080] 具体地,服务器获取所述同步通知即可根据所述同步通知更新服务器中的数据,客户端可以通过两种同步通知使得服务器中的数据发生变更。\n[0081] (1)客户端根据本地缓存的数据所发生的写操作生成同步通知以使得服务器执行相同的写操作从而实现数据变更。\n[0082] (2)客户端直接根据本地缓存变更后的最新数据生成同步通知以使得服务器使用最新数据代替旧数据从而实现数据变更。\n[0083] 请参考图6,其示出了客户端提供读服务的方法流程图,包括:\n[0084] S21.获取读取目标数据的指令。\n[0085] S22.检查本地的缓存数据是否命中所述目标数据。\n[0086] S23.若未命中,则直接向服务器端请求目标数据。\n[0087] S24.若命中,则根据所述缓存策略判断所述目标数据是否为有效数据;若是,则直接返回所述目标数据;若否,则向服务器端请求目标数据。\n[0088] S25.获取服务器端的目标数据并更新本地的缓存数据。\n[0089] S26.返回所述目标数据。\n[0090] 请参考图7,其示出了客户端提供写服务的方法流程图,包括:\n[0091] S210.响应于写操作指令,变更本地缓存的数据。\n[0092] S220.生成并向服务器发布同步通知,所述同步通知用于将所述写操作同步至服务器。\n[0093] 本发明实施例以客户端视角提供了一种分布式缓存服务实现方法,并具体提供了读服务方法和写服务方法,从而实现了客户端的缓存管理逻辑,避免了现有技术中用户需要实现缓存管理逻辑的弊端,既提升了用户体验,又自动实现了客户端向服务器的数据主动同步,从而保证服务器中的数据始终为最新数据。\n[0094] 本发明另一个实施例提供一种分布式缓存服务实现方法,所述方法应用于服务器,如图8所示,所述方法包括:\n[0095] S301.获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系。\n[0096] S302.接收客户端在提供缓存服务的过程中发布的同步通知并根据所述同步通知更新本地数据。\n[0097] S303.根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令。\n[0098] 具体地,服务器通过发布同步指令使得收到同步指令的目标客户端可以根据所述同步指令更新其本地缓存的数据,具体地,服务器可以通过两种同步指令使得目标客户端中的数据发生变更。\n[0099] (1)服务器根据所发生的写操作生成同步指令以使得目标客户端执行相同的写操作从而实现数据变更。\n[0100] (2)服务器直接根据变更后的最新数据生成同步指令以使得目标客户端使用最新数据代替旧数据从而实现数据变更。\n[0101] 请参考图9,其示出了服务器发布同步指令的方法流程图,包括:\n[0102] S31.根据所述缓存配置表获取目标客户端,并判断目标客户端是否存在。\n[0103] 具体地,目标客户端即为需要感知服务器本次发生的数据变动的客户端。所述目标客户端包括缓存监听策略被设置为全缓存监听模式的客户端,以及本地缓存的数据中涉及到服务器本次发生变动的数据的,并且将缓存监听策略设置为本地数据监听模式的客户端。\n[0104] S32.若不存在所述目标客户端,则不发布同步指令。\n[0105] S33.若存在所述目标客户端,则向缓存监听策略为本地数据监听模式的目标客户端以点对点的方式发布同步指令,向缓存监听策略为全缓存监听模式的客户端以广播方式发布同步指令。\n[0106] 本发明实施例以服务器视角提供了一种分布式缓存服务实现方法,并具体提供了服务器进行数据变更监听以及进行数据同步处理的方法(发布同步指令的方法),在服务器角度保证了服务器与客户端的数据一致性。\n[0107] 本发明的实施例还提供了一种存储介质,所述存储介质可设置于客户端和/或服务器之中以保存用于实现方法实施例中分布式缓存服务实现方法的程序代码。可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。\n可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。\n[0108] 本发明还提供一种分布式缓存服务实现装置,如图10所述,所述装置包括:\n[0109] 缓存配置管理模块401,用于获取缓存配置信息并更新缓存配置表,所述缓存配置表用于记录客户端和缓存监听策略之间的对应关系。可用于执行方法实施例S301。\n[0110] 同步模块402,用于接收客户端在提供缓存服务的过程中发布的同步通知并根据所述同步通知更新本地数据。可用于执行方法实施例S302。\n[0111] 同步指令发布模块403,用于根据所述缓存配置表获取目标客户端,向所述目标客户端发布根据所述同步通知生成的同步指令以使得所述目标客户端本地缓存的数据能够同步被更新。可用于执行方法实施例S303。\n[0112] 具体地,请参考图11,所述同步指令发布模块403包括:\n[0113] 目标客户端获取单元4031,用于根据所述缓存配置表获取目标客户端。可用于执行方法实施例S31。\n[0114] 同步指令发布单元4032,用于若不存在所述目标客户端,则不发布同步指令;若存在所述目标客户端,则向缓存监听策略为本地数据监听模式的目标客户端以点对点的方式发布同步指令,向缓存监听策略为全缓存监听模式的客户端以广播方式发布同步指令。可用于执行方法实施例S32-S33。\n[0115] 本发明的装置实施例中所述的装置均与方法实施例基于同样地发明构思。\n[0116] 具体地,图12是本发明实施例提供的一种服务器结构示意图,所述服务器结构可以设置于上述装置之中。该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质\n830通信,在服务器800上执行存储介质830中的一系列指令操作。服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。上述方法实施例所执行的步骤可以基于该图12所示的服务器结构。\n[0117] 本发明还提供一种分布式缓存服务实现装置,如图13所示,所述装置包括:\n[0118] 缓存策略获取模块501,用于获取缓存策略,所述缓存策略包括缓存监听策略。可用于执行方法实施例S201。\n[0119] 配置信息处理模块502,用于根据所述缓存策略生成缓存配置信息并将所述缓存配置信息发送至服务器,所述缓存配置信息包括第一客户端的标识和所述缓存监听策略。\n可用于执行方法实施例S202。\n[0120] 缓存服务模块503,用于根据所述缓存策略向用户提供缓存服务,并响应于本地缓存的数据的变动向服务器发送同步通知。可用于执行方法实施例S203。\n[0121] 具体地,所述缓存服务模块503包括读服务单元5031和写服务单元5032。\n[0122] 具体地,如图14所示,读服务单元5031包括:\n[0123] 读取指令获取模块50311,用于获取读取目标数据的指令。可用于执行方法实施例S21。\n[0124] 缓存查询模块50312,用于检查本地的缓存数据是否命中所述目标数据。可用于执行方法实施例S22。\n[0125] 读取指令实现模块50313,用于若未命中,则直接向服务器端请求目标数据;若命中,则根据所述缓存策略判断所述目标数据是否为有效数据;若是,则直接返回所述目标数据;若否,则向服务器端请求目标数据。可用于执行方法实施例S23-S24。\n[0126] 远程数据读取结果处理模块50314,用于获取服务器端的目标数据并更新本地的缓存数据;返回所述目标数据。可用于执行方法实施例S25-S26。\n[0127] 具体地,如图15所示,写服务单元5032包括:\n[0128] 变更模块50321,用于响应于写操作指令,变更本地缓存的数据。可用于执行方法实施例S210。\n[0129] 同步通知处理模块50322,用于生成并向服务器发布同步通知,所述同步通知用于将所述写操作同步至服务器。可用于执行方法实施例S220。\n[0130] 本发明的装置实施例中所述的装置均与方法实施例基于同样地发明构思。\n[0131] 参见图16,本发明实施例提供了一种终端,该终端可以用于实施上述实施例中提供的分布式缓存服务实现方法。具体来讲:\n[0132] 所述终端可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图16中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:\n[0133] RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System ofMobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division MultipleAccess,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。\n[0134] 存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述终端的使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元\n130对存储器120的访问。\n[0135] 输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。\n[0136] 显示单元140可用于显示由用户输入的信息或提供给用户的信息以及所述终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。\n显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板\n141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图5中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。\n[0137] 所述终端还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在所述终端移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。\n[0138] 音频电路160、扬声器161,传声器162可提供用户与所述终端之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与所述终端的通信。\n[0139] WiFi属于短距离无线传输技术,所述终端通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图16示出了WiFi模块170,但是可以理解的是,其并不属于所述终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。\n[0140] 处理器180是所述终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行所述终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。\n[0141] 所述终端还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。\n[0142] 尽管未示出,所述终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中方法实施例中的指令。\n[0143] 本发明实施例还提供了分布式缓存服务实现系统,所述分布式缓存服务实现系统由本发明实施例所提供的至少一个终端和至少一个服务器构成。\n[0144] 需要说明的是:上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。\n[0145] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。\n[0146] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2018-10-02
- 2017-09-12
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201710379582.2
申请日: 2017.05.25
- 2017-08-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2016-11-02
|
2016-05-30
| | |
2
| |
2016-12-14
|
2016-07-29
| | |
3
| |
2012-10-17
|
2011-04-14
| | |
4
| |
2010-06-30
|
2010-01-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |