一种分布式缓存方法及系统的制作方法

文档序号:9814365阅读:422来源:国知局
一种分布式缓存方法及系统的制作方法
【技术领域】
[0001] 本发明设及缓存技术领域,尤其设及的是一种分布式缓存方法及系统。
【背景技术】
[0002] 缓存的概念来源于操作系统,CPU需要通过指令实现内存与寄存器之间的交互,为 加快处理速度,会将需要执行指令需要的一些数据先在寄存器中缓存起来,而不是每次都 去内存读写。而对于企业应用来说,通常需要在内存与硬盘之间进行数据交互,对于一些频 繁使用的用户信息数据,通常会将其加载到内存,作为一个缓存,或者弄一个单独的服务器 作为缓存节点,从而可W提升效率和减少对底层资源的耗时操作。但是对于大型互联网应 用来说,高峰访问量上百万的并发读写数据请求,往往会超出单台服务器的承受能力,此时 将会需要一个分布式的缓存服务器集群来支撑,由此,开发人员将面临负载均衡和扩容等 难题。
[0003] 对于分布式的负载均衡,有些为了简单,直接采用缓存数据的Key(关键字)值对机 器数量取模运算来保证数据负载均衡,但为了保证扩容后旧数据的尽量少地发生数据迁移 (也就是指数据从一台缓存服务器迁移到另一台缓存服务器),往往需要采用成倍扩容的方 式来解决(成倍扩容是指服务器数量W2的次幕来扩容),运样很容易造成机器资源浪费;或 者采用一致性哈希算法来实现,但其在解决集群数据分布不均的问题上过于复杂。
[0004] 因此,现有技术还有待于改进和发展。

【发明内容】

[0005] 本发明要解决的技术问题在于,提供一种分布式缓存方法及系统,旨在解决现有 技术中集群数据分布不均,扩容不方便的问题。
[0006] 本发明解决技术问题所采用的技术方案如下: 一种分布式缓存方法,其中,包括: A、 根据关键字值的取值范围对缓存数据进行分组,获得若干个缓存数据的分组,每个 分组对应关联至少一缓存服务器; B、 根据待缓存数据的关键字值所属取值范围查找匹配的分组,将所述关键字值对该分 组关联的所有缓存服务器数量进行取模运算,找到匹配的缓存服务器并对应存储所述待缓 存数据。
[0007] 所述的分布式缓存方法,其中,所述步骤A具体包括: A1、基于缓存数据的关键字值的取值范围将所述缓存数据划分为多个分组,每个分组 对应一个取值范围,且每个分组对应关联至少一台缓存服务器,根据不同分组对应的取值 范围及缓存服务器得到相应的配置表。
[000引所述的分布式缓存方法,其中,所述步骤B具体包括: B11、外观服务器接收负载均衡器分配的待缓存数据的读写请求; B12、根据所述读写请求的关键字值及所述配置表中的分组信息找到相应匹配的分组; B13、根据所述读写请求的关键字值对该分组当前所具有的缓存服务器数量进行取模, 找到对应的缓存服务器并完成待缓存数据的读写请求。
[0009] 所述的分布式缓存方法,其中,在所述步骤B之后,还包括: CU当缓存服务器的容量达到限制时,添加新扩容的缓存服务器,将新扩容的缓存服务 器分配到新的分组中,并对应修改所述配置表的分组信息; 或C2、当缓存服务器的容量达到限制时,将新扩容的缓存服务器分配到原有分组中,并 对应修改所述配置表的分组信息。
[0010] 所述的分布式缓存方法,其中,所述步骤B具体包括: B21、根据待缓存数据的关键字值所属的取值范围,找到对应匹配的分组; B22、将所述待缓存数据的关键字值对该分组关联的所有缓存服务器数量进行取模运 算,得到对应的取模运算结果; B23、根据预先设置的不同取模运算结果与各个缓存服务器的关联关系,找到与所述取 模运算结果匹配的缓存服务器并对应存储所述待缓存数据。
[0011] -种分布式缓存系统,其中,包括: 分布设置模块,用于根据关键字值的取值范围对缓存数据进行分组,获得若干个缓存 数据的分组,每个分组对应关联至少一缓存服务器; 分布缓存模块,用于根据待缓存数据的关键字值所属取值范围查找匹配的分组,将所 述关键字值对该分组关联的所有缓存服务器数量进行取模运算,找到匹配的缓存服务器并 对应存储所述待缓存数据。
[0012] 所述的分布式缓存系统,其中,所述分布设置模块包括: 分布关联单元,用于基于缓存数据的关键字值的取值范围将所述缓存数据划分为多个 分组,每个分组对应一个取值范围,且每个分组对应关联至少一台缓存服务器,根据不同分 组对应的取值范围及缓存服务器得到相应的配置表。
[0013] 所述的分布式缓存系统,其中,所述分布缓存模块包括: 第一分配单元,用于通过外观服务器接收负载均衡器分配的待缓存数据的读写请求; 第一分组单元,用于根据所述读写请求的关键字值及所述配置表中的分组信息找到相 应匹配的分组; 第一取模单元,用于根据所述读写请求的关键字值对该分组当前所具有的缓存服务器 数量进行取模,找到对应的缓存服务器并完成待缓存数据的读写请求。
[0014] 所述的分布式缓存系统,其中,还包括: 分组增加模块,用于当缓存服务器的容量达到限制时,添加新扩容的缓存服务器,将新 扩容的缓存服务器分配到新的分组中,并对应修改所述配置表的分组信息; 或缓存增加模块,用于当缓存服务器的容量达到限制时,将新扩容的缓存服务器分配 到原有分组中,并对应修改所述配置表的分组信息。
[0015] 所述的分布式缓存系统,其中,所述分布缓存模块包括: 第二分组单元,用于根据待缓存数据的关键字值所属的取值范围,找到对应匹配的分 组; 第二取模单元,用于将所述待缓存数据的关键字值对该分组关联的所有缓存服务器数 量进行取模运算,得到对应的取模运算结果; 缓存服务器匹配单元,用于根据预先设置的不同取模运算结果与各个缓存服务器的关 联关系,找到与所述取模运算结果匹配的缓存服务器并对应存储所述待缓存数据。
[0016] 本发明所提供的一种分布式缓存方法及系统,有效地解决了现有技术中集群数据 分布不均,扩容不方便的问题,通过根据关键字值的取值范围对缓存数据进行分组,获得若 干个缓存数据的分组,每个分组对应关联至少一缓存服务器;根据待缓存数据的关键字值 所属取值范围查找匹配的分组,将所述关键字值对该分组关联的所有缓存服务器数量进行 取模运算,找到匹配的缓存服务器并对应存储所述待缓存数据;能够任意水平扩容,扩容方 便,集群数据能均衡分布,带来了大大的方便。
【附图说明】
[0017] 图1为本发明提供的分布式缓存方法较佳实施例的流程图。
[001引图2为图1中步骤S200第一实施例的流程图。
[0019]图3为图1中步骤S200第二实施例的流程图。
[0020]图4为本发明提供的分布式缓存方法中系统架构示意图。
[0021 ]图5为本发明提供的分布式缓存系统较佳实施例的结构框图。
[0022] 图6为图5中分布缓存模块第一实施例的结构框图。
[0023] 图7为图5中分布缓存模块第二实施例的结构框图。
【具体实施方式】
[0024] 本发明提供一种分布式缓存方法及系统,为使本发明的目的、技术方案及优点更 加清楚、明确,W下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述 的具体实施例仅仅用W解释本发明,并不用于限定本发明。
[0025] 请参阅图1,图1为本发明提供的分布式缓存方法较佳实施例的流程图,如图所示, 所述方法包括W下步骤: 步骤S100、根据关键字值的取值范围对缓存数据进行分组,获得若干个缓存数据的分 组,每个分组对应关联至少一缓存服务器; 步骤S200、根据待缓存数据的关键字值所属取值范围查找匹配的分组,将所述关键字 值对该分组关联的所有缓存服务器数量进行取模运算,找到匹配的缓存服务器并对应存储 所述待缓存数据。
[0026] 下面结合具体的实施例对上述步骤进行详细的描述。
[0027] 在步骤SlOO中,根据关键字值的取值范围对缓存数据进行分组,获得若干个缓存 数据的分组,每个分组对应关联至少一缓存服务器。具体来说,根据数据的key(关键字)值 来划分区间,即进行分组,每个分组对应一台或多台的缓存服务器。
[0028] 在实际应用时,基于缓存数据的关键字值的取值范围将所述缓存数据划分为多个 分组,每个分组对应一个取值范围,且每个分组对应关联至少一台缓存服务器,根据不同分 组对应的取值范围及缓存服务器得到相应的配置表。具体来说,就是对缓存数据的关键字 值按照不同取值范围划分为多个分组,每个分组对应不同的取值范围,且每个分组对应关 联至少一台缓存服务器,根据不同分组对应的取值范围及缓存服务器得到相应的配置表。 也就是将对关键字值进行分组的分组信息对应W配置表的形式体现。配置表中有不同分组 对应的取值范围及缓存服务器信息。请参阅表1,表1为分组关系的配置表,表1只为举例说 明,不作限制。如表1所示
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1