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,敬请期待!
本文介绍了Redis集群分片的主要目标是解决容量问题,探讨了数据分类、不同分片策略的优缺点,如hash取模、随机存储和一致性哈希。重点讲述了采用代理如Twitter的twemproxy进行分片的实现过程,包括下载、编译和安装,并提供了相关文档参考。文章还提及了实战演示的内容,但具体细节未展开。
373

被折叠的 条评论
为什么被折叠?



