redis-5.0.4集群搭建

单机redis搭建

1:环境描述
     操作系统 :centos7 、
     gcc版本 :gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
     redis版本:redis-5.0.4
2:redis搭建
     1:下载redis安装包 命令:wget http://download.redis.io/releases/redis-5.0.4.tar.gz
     2:解压安装包 命令:tar -zxvf redis-5.0.4.tar.gz
     3:进入解压后的文件夹 编译redis源码 命令: make
     4:安装redis 命令:make install PREFIX=/usr/local/redis
     5:进入/usr/local/redis/bin文件夹,将解压后的文件夹中 redis.conf复制到bin文件夹 下 修改redis.conf 配置 主要修改的配置项如下
     daemonize:yes(修改成后台启动避免客户端关闭,redis也关闭)
     bind:0.0.0.0 (可以外部访问)
     port:6379(指定端口号)

     6:启动 redis 命令:./redis-server redis.conf
     7:查看redis是否启动 ps aux|grep redis
     8:连接redis 命令为: ./redis-cli -h host -p port host为服务器host port 为redis.conf中的port
     9: 退出redis 命令:exit
     10:关闭 redis 命令:./redis-cli -h 129.204.194.215 -p 6378 shutdown
     11:总结至此一个简单的redis单机版搭建就完成了,至于在其中遇见的问题,大家可以根据提示信息进行解决,一般提示信息会给出对应的解决方案

构建redis集群

1:redis-cluster介绍
     1:redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。
     2:redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点;
     3:redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实例;
     4:为了实现集群的高可用,即判断节点是否健康(能否正常使用),redis-cluster有这么一个投票容错机制:如果集群中超过半数的节点投票认为某个节点挂了,那么这个节点就挂了(fail)。这是判断节点是否挂了的方法;
那么如何判断集群是否挂了呢? -> 如果集群中任意一个节点挂了,而且该节点没有从节点(备份节点),那么这个集群就挂了。这是判断集群是否挂了的方法;
     5:那么为什么任意一个节点挂了(没有从节点)这个集群就挂了呢? -> 因为集群内置了16384个slot(哈希槽),并且把所有的物理节点映射到了这16384[0-16383]个slot上,或者说把这些slot均等的分配给了各个节点。当需要在Redis集群存放一个数据(key-value)时,redis会先对这个key进行crc16算法,然后得到一个结果。再把这个结果对16384进行求余,这个余数会对应[0-16383]其中一个槽,进而决定key-value存储到哪个节点中。所以一旦某个节点挂了,该节点对应的slot就无法使用,那么就会导致集群无法正常工作。
     综上所述,每个Redis集群理论上最多可以有16384个节点。
2:redis集群环境描述
1:redis集群至少需要三个主节点才能构成集群,因为这是redis集群的投票机制决定的。正常情况下每个主节点都应该至少有一个从节点 所以Redis集群至少需要6台服务器。所以这里使用的是伪集群的构建方式,但是最新的版本的redis支持docker容器集群部署(大家可以尝试下)
redis集群构建
1:复制6个redis实例 具体操作如下
     1:创建 redis-cluster 文件夹 命令: mkdir redis-cluster
     2:进入/usr/local/redis文件夹 执行命令:cp -r redis/bin/ redis-cluster/redis01
     3:同理复制其它5个实例;
     4:修改6个redis实例的redis.conf文件中的 port 以及 cluster-enabled :yes 以及删除 redis01文件下的dump.rdb文件。
2:依次启动创建好的实例;推荐编写shell脚本启动
3:复制
4:构建 redis集群需要使用到ruby 并且版本ruby版本必须大于2.0 但是针对redis版本低于5.0的版本,对于高于5.0的版本在购建中不需要安装ruby,就能进行redis集群的构建
命令:

> ./redis-cli --cluster create 129.204.194.XXX:7001 129.204.194.XXX:7002
> 129.204.194.XXX:7003 129.204.194.XXX:7004 129.204.194.XXX:7005 129.204.194.XXX:7006 --cluster-replicas 1
> 
> 
>   --cluster-replicas 1 表示以主从节点为1:1构建

3:ruby的安装可以参考 菜鸟教程的安装方法,ruby安装成功后 执行ruby -v 检查ruby版本
redis节点添加
1:首先添加两个redis实例
2:然后添加到redis集群中 命令为:

 ./redis-cli --cluster  add-node 129.204.194.XXX:7007(需新增的节点)
     129.204.194.215:7001(集群中的节点)

3:分配哈希槽到新节点 命令为:./redis-cli --cluster reshard (集群中的某个节点)例如(129.204.194.XXX:7001) 然后输入需要转移的哈希槽的个数,然后输入 转移的目标节点的id,最后输入哈希槽的来源节点

总结

最终搭建出的redis集群目录如下:
最终成果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值