redis集群方案



由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用。Redis3.0版本前只支持单实例模式,虽然现在的服务器内存可以达到100GB200GB的规模,但是单实例模式限制了Redis没法满足业务的需求(例如新浪微博就曾经用Redis存储了超过1TB的数据)。Redis的开发者Antirez早在博客上就提出在Redis 3.0版本中加入集群的功能,但3.0版本等到2015年才发布正式版。各大企业在3.0版本还没发布前为了解决Redis的存储瓶颈,纷纷推出了各自的Redis集群方案。这些方案的核心思想是把数据分片(sharding)存储在多个Redis实例中,每一片就是一个Redis实例。下面介绍Redis的集群方案。 1.客户端分片客户端分片是把分片的逻辑放在Redis客户端实现,通过Redis客户端预先定义好的路由规则,把对Key的访问转发到不同的Redis实例中,最后把返回结果汇集。

 

 

这是一种静态的分片方案,需要增加或者减少Redis实例的数量,需要手工调整分片的程序。可运维性差,集群的数据出了任何问题都需要运维人员和开发人员一起合作,减缓了解决问题的速度,增加了跨部门沟通的成本。在不同的客户端程序中,维护相同的分片逻辑成本巨大。例如,系统中有两套业务系统共用一套Redis集群,一套业务系统用Java实现,另一套业务系统用PHP实现。为了保证分片逻辑的一致性,在Java客户端中实现的分片逻辑也需要在PHP客户端实现一次。相同的逻辑在不同的系统中分别实现,这种设计本来就非常糟糕,而且需要耗费巨大的开发成本保证两套业务系统分片逻辑的一致性。2.TwemproxyTwemproxy是由Twitter开源的Redis代理,其基本原理是:Redis客户端把请求发送到TwemproxyTwemproxy根据路由规则发送到正确的Redis实例,最后Twemproxy把结果汇集返回给客户端。Twemproxy通过引入一个代理层,将多个Redis实例进行统一管理,使Redis客户端只需要在Twemproxy上进行操作,而不需要关心后面有多少个Redis实例,从而实现了Redis集群。

 

 

3.Codis Twemproxy不能平滑增加Redis实例的问题带来了很大的不便,于是豌豆荚自主研发了Codis,一个支持平滑增加Redis实例的Redis代理软件,其基于GoC语言开发,并于201411月在GitHub上开源。 Codis包含下面4个部分。 • Codis ProxyRedis客户端连接到Redis实例的代理,实现了Redis的协议,Redis客户端连接到Codis Proxy进行各种操作。Codis Proxy是无状态的,可以用Keepalived等负载均衡软件部署多个Codis Proxy实现高可用。 • CodisRedisCodis项目维护的Redis分支,添加了slot和原子的数据迁移命令。Codis上层的 Codis ProxyCodisconfig只有与这个版本的Redis通信才能正常运行。 • CodisconfigCodis管理工具。可以执行添加删除CodisRedis节点、添加删除Codis Proxy、数据迁移等操作。



http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73260878e482a958448e435061e5a31b5e0667f4c508499297a43b2485beff33c77351420c0c18ed714c9fecf6879877f67344f914062c468acdc3554d650e64d9fae0ee6cab065c5f593&p=9a66ce148a8712a05abd9b7d0d1c8e&newp=c36ac64ad49902b908e2977e074f8d231610db2151d4d61f6b82c825d7331b001c3bbfb423221a0fd0c67d6301ae4d5ce1f13d78350025a3dda5c91d9fb4c57479d26422&user=baidu&fm=sc&query=java%C1%AC%BD%D3redis&qid=d3141ac90003254e&p1=1

http://news.tuxi.com.cn/itb/carlosfu/blog/2240161.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值