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集群确定)。并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。
作 者:
Jony.K.Chen
出 处:http://www.cnblogs.com/lxcy/
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!