可参考官网文档:redis集群配置

需要注意的是,集群中的每个节点都会涉及到两个端口,一个是用于处理客户端操作的(如下介绍到的6379/6380),另一个是10000+{监听端口},用于集群各个节点间通信。

第一步 :环境准备

  此处我准备了三台服务器(也可安装三台虚拟机),其内网IP分别为:192.168.103.54  192.168.103.56  192.168.103.57,我们约定把192.168.103.54作为集群控制端。

第二步:安装redis

  可参考redis安装与配置

第三步:修改配置、创建节点(此处我每台机器运行两个redis节点)

  次处我的redis安装目录为:/usr/data/redis-4.0.8

  1、跳转到redis安装目录

cd /usr/data/redis-4.0.

  2、创建一个新目录:cluster  (该目录名称、位置任意,此处我是建在了redis安装目录下)

mkdir cluster

  3、在cluster目录下,创建两个目录,分别是6379  6380(用于存储redis配置文件)

  备注:此处新建的目录名必须与redis节点对应的端口号对应

cd cluster
mkdir

  4、添加redis节点对应的配置文件,此处我直接拷贝redis安装目录下的配置文件redis.conf再加以修改

cp redis.conf cluster/
cp redis.conf cluster/

  5、修改redis配置文件(目录6379、6380下的redis.conf),主要修改如下配置,

#绑定局域网ip,使得三台服务器可相互访问
bind 192.168.103.54
protected-mode yes
#redis节点监听端口
port
#以守护进程启动
daemonize yes
pidfile /var/run/redis_6380.pid
dbfilename dump_6380.rdb
#如下为集群配置
cluster-enabled yes #启用集群
cluster-config-file nodes-.conf #集群配置文件,由redis自动更新,不需要手动配置
cluster-node-timeout 5000 #集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为master
cluster-slave-validity-factor 10 #在进行故障转移的时候全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了导致数据过于陈旧,不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长
(计算方法为:cluster-node-timeout * cluster-slave-validity-factor,此处为:5000 * 10 毫秒
#cluster-migration-barrier 1
cluster-require-full-coverage yes #集群中的所有slot(16384个)全部覆盖
,才能提供服务

第四步:启动三台机器上的6个节点

cd /usr/data/redis-4.0./src
./redis-server ../cluster//redis.conf
./redis-server ../cluster//redis.conf

第五步:创建集群

  因为此处我是以192.168.103.54作为集群控制端,所有一下操作都在改机器上完成

gem install redis
./redis-trib.rb create --replicas 192.168.103.54: 192.168.103.54: 192.168.103.56: 192.168.103.56: 192.168.103.57: 192.168.103.57:

备注:执行gem install redis前,需先安装ruby环境,如下通过yum安装ruby:

yum -y install ruby rubygems

安装完后再次执行gem还是会报错:“redis requires Ruby version >= 2.2.2

解决办法为重装高版本的ruby,此处我这里是以修改ruby  yum源的方式重装ruby

yum install centos-release-scl-rh    //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源
yum install rh-ruby23 -y    //直接yum安装即可  
scl enable rh-ruby23 bash    //必要一步
ruby -v    //查看安装版本

再次执行:gem install redis  成功

第六步:查看集群状态

可连接集群中的任一节点,此处连接了集群中的节点192.168.103.54:6379

第七步:总结

  redis集群实际上是通过hash slots 的方式实现负载均衡(总共16384个slot),采用了非一致hash,使得集群节点可动态增加或减少,通过key计算slot,然后将值存储到对应的slot关联的机器上。

扩展:

  添加一个新的master

Adding a new node is basically the process of adding an empty node and then moving some data into it, in case it is a new master, or telling it to setup as a replica of a known node, in case it is a slave.
./redis-trib.rb add-node 192.168.103.58: 192.168.103.54:

  当添加新的master后,需要从新分片redis,不然新的master由于没有slot,所以不能提供服务

./redis-trib.rb reshard 192.168.103.54:

  添加一个新的slave

./redis-trib.rb add-node --slave 192.168.103.58: 192.168.103.54:

  移除集群中的一个节点

./redis-trib del-node 192.168.103.54: `<node-id>`

centos6.5下redis集群配置(多机多节点)的更多相关文章

  1. linux环境(CentOS-6.7)下redis集群的搭建全过程

    linux环境下redis集群的搭建全过程: 使用mount命令将光盘挂载到/mnt/cdrom目录下: [root@hadoop03 ~]# mount -t iso9660 -o ro /dev/ ...

  2. Windows下Redis集群配置

    Redis集群学习地址:http://blog.csdn.net/dc_726/article/details/11694437 Windows-32系统下搭建Redis集群 一.Redis主从同步原 ...

  3. linux下redis 集群配置

    redis.conf 配置文件说明 daemonize no --是否把redis-server启动在后台,默认是“否”.若改成yes pidfile /var/run/redis.pid --当Re ...

  4. 最新Windows下Redis集群

    实现简单的Windows下Redis集群配置,以下是配置过程中出现的几个问题: [1]逐个启动7001 7002 7003 7004 7005 7006节点时,出现createing server T ...

  5. Linux系统下安装Redis和Redis集群配置

    Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...

  6. Centos6.6部署Redis集群

    Centos6.6部署Redis集群 1环境准备 1环境安装redis 1安装ruby 2配置redis主从环境 3部署redis sentinel服务器 5集群使用 13当前集群环境说明 13测试功 ...

  7. CentOS下redis集群安装

    环境: 一台CentOS虚拟机上部署六个节点,创建3个master,3个slave节点 1.下载并解压 cd /root wget http://download.redis.io/releases/ ...

  8. Redis集群配置(linux)

     *弄了一天,有问题直接问我.qq:137416943   1.redis集群的配置和简单使用   Redis集群配置 0.首先要配置环境: 0.1 安装c++ yum install gcc-c++ ...

  9. Centos6.9下RabbitMQ集群部署记录

    之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言, ...

随机推荐

  1. 【R笔记】使用R语言进行异常检测

    本文转载自cador<使用R语言进行异常检测> 本文结合R语言,展示了异常检测的案例,主要内容如下: (1)单变量的异常检测 (2)使用LOF(local outlier factor,局 ...

  2. 下载谷歌浏览器(Chrome)扩展离线安装包crx文件最简单的方法

    转:http://alyzq.com/?p=627 如果不会使用,请看下面的操作步骤 引言(可以不看): 下面介绍一下,下载谷歌浏览器(Google Chrome)扩展的离线安装包crx文件最简单的方 ...

  3. 【报错】引入jar包import org.apache.commons.codec.digest.DigestUtils 报错,jar不存在

    import org.apache.commons.codec.digest.DigestUtils报错.缺少jar maven引用jar包地址: <!-- https://mvnreposit ...

  4. 各版本IIS下ASP.net请求处理过程区别

      ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用. 绝大多数的人只熟悉高层的框架如: WebForms 和 WebServic ...

  5. pdf.js 添加自定义loading动画

    最近做了个手机端pdf预览的功能,用到pdf.js这个库,效果还不错.但是在网络差.文件大时,页面一直空白,体验不是很好. 于是加了个loading动画. <div id="loadi ...

  6. PostgreSQL on Linux 最佳部署手册

    安装常用包 # yum -y install coreutils glib2 lrzsz mpstat dstat sysstat e4fsprogs xfsprogs ntp readline-de ...

  7. requireJS简介和一个完整实例

    什么是 requireJS ? requireJS 是用JavaScript编写的JS框架,主要功能是可以按不同的先后依赖关系对 JavaScript 等文件的进行加载工作,可简单理解为JS文件的加载 ...

  8. [Android]Volley源代码分析(二)Cache

    Cache作为Volley最为核心的一部分,Volley花了重彩来实现它.本章我们顺着Volley的源代码思路往下,来看下Volley对Cache的处理逻辑. 我们回忆一下昨天的简单代码,我们的入口是 ...

  9. mysql show profiles使用分析sql性能

    mysql show profiles使用分析sql性能 Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后. 查看一下我的数据库版本 mysql> ...

  10. Windows下编译vpx获得各个项目VS2010解决方案的步骤

    最近研究了一下几种常见的视频编码器:x264,x265,vpx.本文简单记录一下它们的编译方法. x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器.x264现在占据着H ...