相关介绍:

Redis从3.0版本开始支持集群!    

集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群。

每个节点需要开启配置文件中的cluster-enabled yes,让Redis运行在集群模式下。

     

测试环境:

资源有限,这里使用3台虚拟机模拟6个节点(用端口区分),每台虚机2个节点,如下图:

注:Redis默认端口:6379,这里方便起见,设定从7001~7006来区分6个节点。

操作步骤:

Redis下载官网:https://redis.io/

1. 节点准备

每台机器都先编译安装Redis (经测试,redis-3.2.9 集群搭建方法一样)

[root@server-1 ~]# tar  zxvf  redis-4.0.1.tar.gz

[root@server-1 ~]# cd redis-4.0.1

[root@server-1 redis-4.0.1]# make && make install    //不需要configure,直接make,别忘了系统先装好gcc和zlib-devel

[root@server-1 redis-4.0.1]# redis-server  -v    //检查一下版本

server-2和server-3操作同上;

2. 配置每个节点

在server-1上:

[root@server-1 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7001,7004}  //在/opt目录下新建一个redis-cluster文件夹,并在里面新建2个文件夹,用来区分节点

[root@server-1 redis-4.0.1]# cp redis.conf /opt/redis-cluster/7001/redis-7001.conf

[root@server-1 redis-4.0.1]# vim /opt/redis-cluster/7001/redis-7001.conf    //必要需要修改如下,其他细化优化的配置项可暂时保持默认

      bind 192.168.1.21             #本机IP

      port 7001                   #改为设定的端口

      daemonize yes                    #后台启动

      cluster-enabled yes          #启动集群模式

      cluster-config-file nodes-7001.conf  #集群内部配置文件,改掉端口号 

      cluster-node-timeout 15000     #节点超时时间,单位:毫秒   

[root@server-1 redis-4.0.1]# cp redis.conf /opt/redis-cluster/7004/redis-7004.conf

[root@server-1 redis-4.0.1]# vim /opt/redis-cluster/7004/redis-7004.conf

      bind 192.168.1.21             #本机IP

      port 7004                   #改为设定的端口

      daemonize yes                    #后台启动

      cluster-enabled yes          #启动集群模式

      cluster-config-file nodes-7004.conf  #集群内部配置文件,改掉端口号 

      cluster-node-timeout 15000     #节点超时时间,单位:毫秒

在server-2上:

[root@server-2 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7002,7005}

    ......参考server-1......    

在server-3上:

[root@server-3 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7003,7006}

    ......参考server-1......

  

3. 启动每个节点

在server-1上:

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7001/redis-7001.conf

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7004/redis-7004.conf

在server-2上:

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7002/redis-7002.conf

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7005/redis-7005.conf

在server-3上:

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7003/redis-7003.conf

[root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7006/redis-7006.conf

    

4. redis-trib.rb环境准备(该文件存在于redis-4.0.1/src/目录中)    //只需要在其中一台上执行此步骤!!

redis-trib.rb是采用Ruby实现的Redis集群管理工具。内部通过Cluster相关命令帮助

我们简化集群创建、检查、槽迁移和均衡等常见操作,使用之前需要安装Ruby依赖环境。

注:以下安装Ruby的方法如果觉得麻烦,可以参考另一篇文章:centos7/rhel7安装较高版本ruby2.2/2.3/2.4+

①安装Ruby

~]# wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gz

~]# tar zxvf  ruby-2.3.5.tar.gz

~]# cd ruby-2.3.5

ruby-2.3.5]# ./configure  --prefix=/opt/ruby

ruby-2.3.5]# make && make install

ruby-2.3.5]# ln -s /opt/ruby/bin/ruby /usr/bin/ruby

ruby-2.3.5]# ln -s /opt/ruby/bin/gem /usr/bin/gem

~]#ruby -v    //查看一下

②安装rubygem redis依赖

~]# wget http://rubygems.org/downloads/redis-3.3.0.gem

~]# gem install -l redis-3.3.0.gem

如果这步报错,如下:

~]# gem install -l redis-3.3..gem
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass

解决办法如下:

yum -y install zlib-devel
进入ruby源码文件夹,安装ruby自身提供的zlib包
cd ruby-2.3./ext/zlib
ruby ./extconf.rb
make
make install

然后再次执行gem install -l redis-4.0.1.gem,正常通过显示Successfully... 。

③检查redis-trib.rb的可用性

~]# ./redis-4.0.1/src/redis-trib.rb    //如下图所示代表可用了

5. 创建集群

只需要执行一条长命令,如下:

~]#./redis-4.0.1/src/redis-trib.rb create  --replicas 1 192.168.1.21:7001 192.168.1.22:7002 192.168.1.23:7003 192.168.1.21:7004 192.168.1.22:7005 192.168.1.23:7006

说明:--replicas参数指定集群中每个主节点配备几个从节点,这里设置为1。

   这里因为测试,只用了3台机器,如果部署节点使用不同的IP地址,redis-trib-rb会尽可能保证主从节点不分配在同一台机器下,

   因此会重新排序节点表顺序。节点列表顺序用于确定主从角色,先主节点之后是从节点。

   创建过程中首先会给出主从节点角色分配的计划,如下图:

最后的输出报告说明:16384个槽全部被分配完,集群创建成功。

这里需要注意给redis-trib.rb的节点地址必须是不包含任何槽/数据的节点,否则会拒绝创建集群。

  

6. 集群完整性检查

集群完整性指所有的槽都分配到存活的主节点上,只要16384个槽中有一个没有分配给节点则表示集群不完整。

可以用redis-trib.rb check命令检测之前创建的集群是否成功,check命令只需要给出集群中任意一个节点地址就可以

完成整个集群的检查工作,命令使用如下所示:

[root@server-1 ~]# ./redis-4.0.1/src/redis-trib.rb check 192.168.1.22:7002

结束.

    

centos7/rhel7下安装redis4.0集群的更多相关文章

  1. CentOS下Hadoop-2.2.0集群安装配置

    对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...

  2. CENTOS7下安装REDIS4.0.11

    拷贝收藏私用,别无他意,原博客地址: https://www.cnblogs.com/zuidongfeng/p/8032505.html 1.安装redis 第一步:下载redis安装包 wget ...

  3. 模拟安装redis5.0集群并通过Java代码访问redis集群

    在虚拟机上模拟redis5.0的集群,由于redis的投票机制,一个集群至少需要3个redis节点,如果每个节点设置一主一备,一共需要六台虚拟机来搭建集群,此处,在一台虚拟机上使用6个redis实例来 ...

  4. CentOS7.6下安装Redis5.0.7

    此次安装是在CentOS7下安装Redis5.0.7 一.首先准备Redis安装包 这里下载的是 redis-5.0.7.tar.gz 安装包,并将其直接放在了 root ⽬录下 压缩包下载地址:ht ...

  5. centos7下安装zookeeper&zookeeper集群的搭建

    一.centos7下安装zookeeper 1.zookeeper 下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 2.安装步骤 ...

  6. Centos7 下安装Redis4.0.6

    一.安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@iZwz991stxd ...

  7. centos7下安装部署mongodb集群(副本集模式)

    环境需求:Mongodb集群有三种模式:  Replica Set, Sharding,Master-Slaver.  这里部署的是Replica Set模式. 测试环境: 这里副本集(Replica ...

  8. CentOS7.5搭建Solr7.4.0集群服务

    一.Solr集群概念 solr单机版搭建参考: https://www.cnblogs.com/frankdeng/p/9615253.html 1.概念 SolrCloud(solr 云)是Solr ...

  9. docker redis4.0 集群(cluster)搭建

    前言 redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地方是 ...

随机推荐

  1. centos6.7用yum安装redis解决办法及IP限制配置

    在centos6.7用yum安装redis解决办法 - bluesky1 - 博客园 http://www.cnblogs.com/lanblogs/p/6104834.html yum instal ...

  2. React Native之倒计时组件的实现(ios android)

    React Native之倒计时组件的实现(ios android) 一,需求分析 1,app需实现类似于淘宝的活动倒计时,并在倒计时结束时,活动也结束. 2,实现订单倒计时,并在倒计时结束时,订单关 ...

  3. Sqlserver 命令行方式修改 用户密码的方法

    1. 之前写了一个 可以使用  ssms 的方式修改密码的情况 2. 还有办法是执行命令 exec sp_password null,'newpassword','sa' # sa 是用户名 newp ...

  4. 剑指offer(19)二叉树中和为某一值的路径

    题目: 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大的 ...

  5. /dev被异常删除的问题

    今天遇到一个问题,在执行某些操作后,发现经常报“read_urandom: /dev/urandom: open failed: No such file or directory”这个错误.后来查看 ...

  6. linux查看端口是否开放

    在讨论这个问题前,我们先来了解一下物理端口.逻辑端口.端口号等计算机概念. 端口相关的概念: 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL M ...

  7. Linux 下 解压zip文件出现乱码

    网上下载了一个文件,鼠标右键提取出来发现中文文件名全部乱码: 打开命令行  unzip -h  可以看到 -O 参数  制定编码解压: 比如: unzip -O CP936 xxx.zip

  8. maven 当两个工程合并后 他的classpath也合并了

    maven   当两个工程合并后 他的classpath也合并了  也就是说资源文件环境合并了

  9. 基本排序算法[python实现]

    冒泡排序 原理 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换, ...

  10. C# Timer 的区别

    首先,我们看一下 3种Timer 1.System.Threading.Timer 2.System.Timers.Timer 3.System.Windows.Forms.Timer 主要区别,其实 ...