redis集群分片的原理详解

redis集群分片的主要目的是解决容量问题,一般redis每台机器的内存都设置的比较小,当然小有小的好处,比如在做备份时负担比较小,管理内存的代价小等等,集群设计根据不同业务场景可以进行如下设计:

1、数据可以进行业务分类:不同业务选用不同的redis

2、数据没办法拆分:

1)hash取模:

弊端:取模的数必须固定 %3、%4、%10 影响分布式下的扩展性

2)随机存储:

 

3)一致性hash:

规划环形hash环:

 

 

优点:你加节点,可以分担其他节点的压力,不会造成全局洗牌

缺点:新增节点造成一小部分数据不能命中

1)比如击穿问题出现,压到mysql查询,然后在放到缓存中。

2)去取离我最近的2个物理节点,如果两次都没有,再去数据库取,放到缓存中。

3、分片的形式:

1)直接连:

redis的连接成本很高,对server端造成的

 

2)采用代理:

 

3)采用LVS负载:

常用三种代理:twitter、predixy、cluster ;后面我们后详细演示。

4、redis分区原理:

1)直接分:

2)间接灵活分区:

 

比如客户端连接的是中间的节点,而某个key的hash值是4 ,此请求会在中间的节点再次hash,找到hash为4的key所在的节点。 

5、实战演示 twitter predixy代理:

 

进入:

 

继续:

 

 

6、演示twitter 进入服务器:相关git链接

新建 twemproxy 目录:

 下载前升级:

 下载

  查看:

参考:

 

流程:

$ git clone git@github.com:twitter/twemproxy.git
$ cd twemproxy
$ autoreconf -fvi
$ ./configure --enable-debug=full
$ make
$ src/nutcracker -h

线安装:

 正式安装:

 版本底,查看:

去这里镜像:

 拉取:

 拉到了:

查看后清除缓存:

 再次下载:

继续:

 然后:

 继续:

然后 make命令:

查看:

 

步骤太多了, 总之,按照下面的文档一步一步来,很快就搭建配置好。到此分片分享完成,大家一定小详细查看文档,认真测试,下一篇我们分享补充一些常用的项目使用的API,敬请期待!

常用文档参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值