Redis Cluster集群的搭建

redis集群搭建原理:

redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。

      官方的一个简单测试:

      测试完成了50个并发执行100000个请求

      设置和获取的值是一个256字节字符串。

      结果:读的速度是110000次/s,写的速度是81000次/s 

 

redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。

Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。

redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384。所以我们在测试的时候看到set 和 get 的时候,直接跳转到了7000端口的节点。

Redis 集群会把数据存在一个 master 节点,然后在这个 master 和其对应的salve 之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master 节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve 节点,充当 master 。

1、安装ruby相关依赖

1.1在线安装

yum install rubygems -y
gem install redis --version=3.0.6

1.2离线安装脚本

上传离线压缩包,解压,运行install.sh脚本即可

 

2、配置运行6个redis服务

2.1先创建3个目录

2.2创建配置文件(总共7个,1公6私)

 

将该文件发送到Windows桌面进行重命名,修改

先将redis.conf重命名为redis-commons.conf(公共的),然后新建txt,命名为后缀为.conf文件

redis-commons.conf中修改的地方,修改为如下即可

 创建6个私有配置文件

redis-6379.conf(私有配置文件母版,需要将该文件再复制修改5个)

然后将7个文件上传如下目录

 

运行

注意:先关闭单节点的redis

接着启动6个Redis服务

 

启动成功

3、通过ruby脚本创建集群

 3.1  复制ruby脚本至安装路径

3.2  创建集群

M:Master主服务

S:slave从服务

4、测试集群

 检测集群

redis-cli测试

 

至此,redis集群搭建完成。。。。。

注意:

集群中至少应该有奇数个节点,所以至少有三个节点,每个节点至少有一个备份节点,(主节点、备份节点由redis-cluster集群确定)。并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。

 

posted @ 2017-12-26 21:34  Jony.K.Chen  阅读(1842)  评论(1编辑  收藏  举报