基于Redis集群的存储系统技术方案

技术编号:14928399 阅读:144 留言:0更新日期:2017-03-30 20:09
本发明专利技术涉及一种互联网领域的数据缓存技术领域,尤其涉及一种基于Redis集群的存储系统,可基于Redis3.0版本的基础上,通过使用集群方式来缓冲传统数据库压力,使得缓存容量方面从原来的1×100%提高到N×70%,进而可成功的支撑单条业务线缓存容量压力,同时也提升了系统的吞吐量;另外,在宕掉少于半数缓存服务器的情况下,还依然能保证缓存服务器的可用性;同时,也大大降低了开发成本,提升了运维效率。

【技术实现步骤摘要】

本专利技术涉及一种互联网领域的数据缓存
,尤其涉及一种基于Redis集群的存储系统
技术介绍
随着社会进步及科技的发展,互联网技术也得到飞速的发展,尤其是进入互联网+时代后,互联网企业在伴随其业务飞速发展的同时,用户需求也越来越复杂且多变,进而会产生巨量的数据信息,而采用传统的存储方案对巨量数据信息的存储又无法满足网络应用平台及用户体验。由于缓存一般是基于内存的数据库,所以业界一般是采用介于网站平台和关系型数据库的中间层,用来缓冲传统存储方案的压力,进而来提升用户体验及平台的响应速度。但是,当应用于快速发展的企业时,就会发现单台缓存服务器内存空间无法满足企业业务量的增长而造成的数据存储需求。当前,通常采用Redis集群方案来满足企业业务量的增长而造成的数据存储需求,Redis集群方案一般为:客户端分片,即将集群的主要工作放在应用程序端,通过直接对多台Redis服务器来进行分布式访问;虽然,该方案可不依赖第三方中间件,即实现方法和代码都需要自身实现,但Redis服务器的增减都需要手工调整程序,且当前基于此机制的开源产品也不多见,故对研发人员、运维人员依赖性较强,难以进行标准化普及。代理分片,即通过选用第三方代理程序(因为后端有多个Redis服务器,所以这类程序又称为分布式中间件)来实现。采用本方案,虽然业务程序可不用关心后端Redis服务器,且运维也较为方便;但>是,但会因此而使得性能有些损耗。但是,目前业界针对巨量数据信息的缓存方案中均普遍存在缓存容量有限、费用高,且开发代价高、运维效率较低等问题。
技术实现思路
目前,Redis集群方案中的服务端分片方式中(Redis3.0版本采用此方式集群),Redis集群将所有Key映射到16384个Slot中,集群中每个Redis服务器负责一部分,业务程序通过集成的客户端进行操作。即客户端可以向任一服务器发出请求,如果所需数据不在该服务器中,则该服务器引导客户端自动定向去对应服务读写数据。但是,此方案目前还不支持在客户端使用。本专利技术的目的在于提供一种基于Redis集群的存储系统,可基于Redis3.0版本集群的基础上,通过提供应用程序快速接入操作接口,来解决大数据下缓存容量限制的问题,且具有开发代价低、运维高效等优势。本专利技术所解决的技术问题可以采用以下技术方案来实现:本申请提供了一种基于Redis集群的缓存系统,可包括:分布式集群服务器,包括集群服务器和若干扩展服务器,且所述集群服务器负责持有集群信息数据及保存集群状态信息,并映射主键至相应的所述扩展服务器;客户端(如Jedis客户端等),与所述分布式集群服务器双向通信连接,以用于提供访问所述分布式集群服务器的应用程序操作端口(ApplicationProgramInterface,简称API);分支扩展支持集群模块,连接至所述客户端,以对所述应用程序操作端口进行扩展;以及缓存抽象模块(如Springcache注解模块等),连接至所述客户端连接;其中,应用程序通过所述客户端提供的所述应用程序操作端口访问所述分布式集群服务器时,所述缓存抽象模块提供缓存注解功能。作为一个优选的实施例,上述的基于Redis集群的存储系统中:所述分布式集群服务器采用异步复制方式进行数据存储。作为一个优选的实施例,上述的基于Redis集群的存储系统中:所述若干扩展服务器包括至少一主机服务器;以及在所述分布式集群服务器可用时,所述客户端能够访问每个所述主机服务器或所述主机服务器对应的至少一个从服务器。作为一个优选的实施例,上述的基于Redis集群的存储系统中:所述集群服务器发现失效服务器时,自动升级该失效服务器的从服务器为主服务器。作为一个优选的实施例,上述的基于Redis集群的存储系统中:所述客户端为Jedis客户端。作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述分支扩展支持集群模块包括:SpringData单元,提供各种数据访问技术的编程接口。作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述数据访问技术包括:关系型数据库、非关系型数据库、map-reduce框架以及基于云的数据存储服务。作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述分支扩展支持集群模块还包括:SpringDataRedis单元,用于提供Redis存储驱动管理。作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述分支扩展支持集群模块还包括:扩展单元,分别与所述SpringData单元和所述驱动信息SpringDataRedis单元连接,以通过所述编程接口和所述SpringDataRedis单元提供的驱动信息对所述应用程序操作端口进行扩展。作为一个优选的实施例,上述的基于Redis集群的存储系统中,所述缓存注解功能包括:CacheEvict功能,以从Cache中删除特定的Key;Cacheable功能,用于触发Cache操作;Caching功能,以组合多个Cache操作应用到一个方法上;CacheConfig功能,以在各个类中共享同一个Cache设置。附图说明图1为本申请实施例中基于Redis集群的存储系统的结构示意图;图2为本申请实施例图1中分支扩展支持集群模块的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。下面结合附图和具体实施例对本专利技术作进一步说明,但不作为本专利技术的限定。如图1所示,本申请实施例提供了一种基于Redis集群的存储系统,可基于Redis3.0的基础上,通过提供应用程序快速接入操作接口,来解决大数据下缓存容量限制的问题,该缓存系统可包括分布式集群服务器(如Redis3.0分布式集群)、客户端(如Jedis客户端)、分支扩展支持集群模块(如spring-data-redis-DATAREDIS-315分支扩展)和缓存抽象模块(如SpringCa本文档来自技高网...
基于Redis集群的存储系统

【技术保护点】
一种基于Redis集群的缓存系统,其特征在于,包括:分布式集群服务器,包括集群服务器和若干扩展服务器,且所述集群服务器负责持有集群信息数据及保存集群状态信息,并映射主键至相应的所述扩展服务器;客户端,与所述分布式集群服务器双向通信连接,以用于提供访问所述分布式集群服务器的应用程序操作端口;分支扩展支持集群模块,连接至所述客户端,以对所述应用程序操作端口进行扩展;以及缓存抽象模块,连接至所述客户端连接;其中,应用程序通过所述客户端提供的所述应用程序操作端口访问所述分布式集群服务器时,所述缓存抽象模块提供缓存注解功能。

【技术特征摘要】
1.一种基于Redis集群的缓存系统,其特征在于,包括:
分布式集群服务器,包括集群服务器和若干扩展服务器,且所述
集群服务器负责持有集群信息数据及保存集群状态信息,并映射主键
至相应的所述扩展服务器;
客户端,与所述分布式集群服务器双向通信连接,以用于提供访
问所述分布式集群服务器的应用程序操作端口;
分支扩展支持集群模块,连接至所述客户端,以对所述应用程序
操作端口进行扩展;以及
缓存抽象模块,连接至所述客户端连接;
其中,应用程序通过所述客户端提供的所述应用程序操作端口访
问所述分布式集群服务器时,所述缓存抽象模块提供缓存注解功能。
2.如权利要求1所述的基于Redis集群的存储系统,其特征在
于,所述分布式集群服务器采用异步复制方式进行数据存储。
3.如权利要求1所述的基于Redis集群的存储系统,其特征在
于,所述若干扩展服务器包括至少一主机服务器;以及
在所述分布式集群服务器可用时,所述客户端能够访问每个所述
主机服务器或所述主机服务器对应的至少一个从服务器。
4.如权利要求3所述的基于Redis集群的存储系统,其特征在
于,所述集群服务器发现失效服务器时,自动升级该失效服务器的从

\t服务器为主服务器。
5.如权利要求1所述的基于Redis集群的存储系统,其特征在
于,所述客户端为Jedis客户端。
6.如...

【专利技术属性】
技术研发人员:温涛
申请(专利权)人:上海瀚之友信息技术服务有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1