基于Redis集群的存储系统的制作方法

文档序号:9910618阅读:496来源:国知局
基于Redis集群的存储系统的制作方法
【技术领域】
[0001] 本发明涉及一种互联网领域的数据缓存技术领域,尤其涉及一种基于Redis集群 的存储系统。
【背景技术】
[0002] 随着社会进步及科技的发展,互联网技术也得到飞速的发展,尤其是进入互联网+ 时代后,互联网企业在伴随其业务飞速发展的同时,用户需求也越来越复杂且多变,进而会 产生巨量的数据信息,而采用传统的存储方案对巨量数据信息的存储又无法满足网络应用 平台及用户体验。
[0003] 由于缓存一般是基于内存的数据库,所以业界一般是采用介于网站平台和关系型 数据库的中间层,用来缓冲传统存储方案的压力,进而来提升用户体验及平台的响应速度。 但是,当应用于快速发展的企业时,就会发现单台缓存服务器内存空间无法满足企业业务 量的增长而造成的数据存储需求。
[0004] 当前,通常采用Redis集群方案来满足企业业务量的增长而造成的数据存储需求, Redis集群方案一般为:
[0005] 客户端分片,即将集群的主要工作放在应用程序端,通过直接对多台Redis服务器 来进行分布式访问;虽然,该方案可不依赖第三方中间件,即实现方法和代码都需要自身实 现,但Redis服务器的增减都需要手工调整程序,且当前基于此机制的开源产品也不多见, 故对研发人员、运维人员依赖性较强,难以进行标准化普及。
[0006] 代理分片,即通过选用第三方代理程序(因为后端有多个Redis服务器,所以这类 程序又称为分布式中间件)来实现。采用本方案,虽然业务程序可不用关心后端Redis服务 器,且运维也较为方便;但是,但会因此而使得性能有些损耗。
[0007] 但是,目前业界针对巨量数据信息的缓存方案中均普遍存在缓存容量有限、费用 高,且开发代价高、运维效率较低等问题。

【发明内容】

[0008] 目前,Redis集群方案中的服务端分片方式中(Redis3.0版本采用此方式集群), Redis集群将所有Key映射到16384个Slot中,集群中每个Redis服务器负责一部分,业务程 序通过集成的客户端进行操作。即客户端可以向任一服务器发出请求,如果所需数据不在 该服务器中,则该服务器引导客户端自动定向去对应服务读写数据。但是,此方案目前还不 支持在客户端使用。
[0009] 本发明的目的在于提供一种基于Redis集群的存储系统,可基于Redis3.0版本集 群的基础上,通过提供应用程序快速接入操作接口,来解决大数据下缓存容量限制的问题, 且具有开发代价低、运维高效等优势。
[0010] 本发明所解决的技术问题可以采用以下技术方案来实现:
[0011] 本申请提供了一种基于Redis集群的缓存系统,可包括:
[0012] 分布式集群服务器,包括集群服务器和若干扩展服务器,且所述集群服务器负责 持有集群信息数据及保存集群状态信息,并映射主键至相应的所述扩展服务器;
[0013] 客户端(如Jedis客户端等),与所述分布式集群服务器双向通信连接,以用于提供 访问所述分布式集群服务器的应用程序操作端口(Application Program Interface,简称 API);
[0014] 分支扩展支持集群模块,连接至所述客户端,以对所述应用程序操作端口进行扩 展;以及
[0015]缓存抽象模块(如Spring cache注解模块等),连接至所述客户端连接;
[0016] 其中,应用程序通过所述客户端提供的所述应用程序操作端口访问所述分布式集 群服务器时,所述缓存抽象模块提供缓存注解功能。
[0017] 作为一个优选的实施例,上述的基于Redis集群的存储系统中:
[0018] 所述分布式集群服务器采用异步复制方式进行数据存储。
[0019] 作为一个优选的实施例,上述的基于Redis集群的存储系统中:
[0020] 所述若干扩展服务器包括至少一主机服务器;以及
[0021] 在所述分布式集群服务器可用时,所述客户端能够访问每个所述主机服务器或所 述主机服务器对应的至少一个从服务器。
[0022]作为一个优选的实施例,上述的基于Redis集群的存储系统中:
[0023]所述集群服务器发现失效服务器时,自动升级该失效服务器的从服务器为主服务 器。
[0024]作为一个优选的实施例,上述的基于Redis集群的存储系统中:
[0025]所述客户端为Jedis客户端。
[0026]作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述分支扩展支持 集群模块包括:
[0027] Spring Data单元,提供各种数据访问技术的编程接口。
[0028]作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述数据访问技术 包括:
[0029]关系型数据库、非关系型数据库、map-reduce框架以及基于云的数据存储服务。 [0030]作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述分支扩展支持 集群模块还包括:
[0031 ] Spring Data Redis单元,用于提供Redis存储驱动管理。
[0032]作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述分支扩展支持 集群模块还包括:
[0033] 扩展单元,分别与所述Spring Data单元和所述驱动信息Spring Data Redis单元 连接,以通过所述编程接口和所述Spring Data Redis单元提供的驱动信息对所述应用程 序操作端口进行扩展。
[0034]作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述缓存注解功能 包括:
[0035] OCacheEvict功能,以从Cache中删除特定的Key;
[0036] OCacheable功能,用于触发Cache操作;
[0037] OCaching功能,以组合多个Cache操作应用到一个方法上;
[0038] OCacheConf ig功能,以在各个类中共享同一个Cache设置。
【附图说明】
[0039]图1为本申请实施例中基于Redis集群的存储系统的结构示意图;
[0040] 图2为本申请实施例图1中分支扩展支持集群模块的结构示意图。
【具体实施方式】
[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其 他实施例,都属于本发明保护的范围。
[0042] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相 互组合。
[0043]下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。 [0044]如图1所示,本申请实施例提供了一种基于Redis集群的存储系统,可基于 Redis3.0的基础上,通过提供应用程序快速接入操作接口,来解决大数据下缓存容量限制 的问题,该缓存系统可包括分布式集群服务器(如Redis3.0分布式集群)、客户端(如Jedis 客户端)、分支扩展支持集群模块(如spring-data-redis-DATAREDIS-315分支扩展)和缓存 抽象模块(如Spring Cache Abstraction)等,客户端(如Jedis客户端等)与分布式集群服 务器能够实现双向通信连接,可用于提供访问所述分布式集群服务器的应用程序操作端口 (Application Program Interface,简称API),而客户端分支扩展支持集群模块则可对客 户端(即连接至客户)提供的应用程序操作端口进行扩展,而缓存抽象模块(如Spring cache注解模块等)则可通过该客户端向利用客户端提供的应用程序操作端口访问分布式 集群服务器的应用程序通过提供缓存注解功能,即可在以Jedis客户端为基础,通过扩展 spring-data-redis-DATAREDIS-315分支,使得本实施例中的缓存系统支持集群,并同时无 缝融合Spring Cache方法级别的注解。
[0045]下面就针对本申请实施例中各个技术要点进行详细说明:
[0046] 针对Redis3.0分布式集群(即分布式集群服务器):
[0047]首先,Redis集群作为Redis的一个分布式实现,使得Redis3.0分布式集群具有较 高的性能并且能够水平扩容至1000台服务器(或节点),即其最多能够扩容1000台扩展服务 器,且没有中间代理消耗性能,并可使用异步复制方式进行数据存储,而写数据又较为安 全,故具有高可用性;另外,主节点(即主服务器)都可达或者主节点对应的从节点(即从服 务器)至少有一个可达,则表明Redis集群可用。
[0048] 其次,Redis集群服务器(即集群服务器)负责持有集群信息数据,并保存集群状态 信息,以映射合适的主键到相应的服务器。同时,Redis集群服务器也能够自动察觉其它服 务器(即扩展服务器)是否失效,一旦发现失效服务器,就会自动升级该失效服务器的从服 务器为主服务器。
[0049] 优选的,Redis3.0分布式集群的服务器之间均可通过集群总线相连接,并可通过 gossip协议来传播信息,同时可利用ping来确认其它服务器是否存活。
[0050] 针对Jedis客户端(即客户端):
[0051] Jedis客户端与上述的Redis3.0分布式集群双向通信连接,以用于向方位该 Redis3.0分布式集群的应用程序提供API,如提供可采用非常轻量级且足够健壮的Redis Java客户端,使得Jedis设计非常易于使用;另外,Jedis也是完全兼容Redis 2.8. X以及 3.0.x版本功能。
[0052] 针对spring-data-redis-DATAREDIS-315分支扩展(即分支扩展支持集群模块):
[0053] pring-data-redis-DATAREDIS-315分支扩展可对Jedis客户端提供的API进行扩 单元)、Spring Data Redi s (艮P Spring Data Redi s单
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1