centos6.5下redis集群配置(多机多节点)
可参考官网文档: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 #集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为mastercluster-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-coverageyes#集群中的所有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集群配置(多机多节点)的更多相关文章
- linux环境(CentOS-6.7)下redis集群的搭建全过程
linux环境下redis集群的搭建全过程: 使用mount命令将光盘挂载到/mnt/cdrom目录下: [root@hadoop03 ~]# mount -t iso9660 -o ro /dev/ ...
- Windows下Redis集群配置
Redis集群学习地址:http://blog.csdn.net/dc_726/article/details/11694437 Windows-32系统下搭建Redis集群 一.Redis主从同步原 ...
- linux下redis 集群配置
redis.conf 配置文件说明 daemonize no --是否把redis-server启动在后台,默认是“否”.若改成yes pidfile /var/run/redis.pid --当Re ...
- 最新Windows下Redis集群
实现简单的Windows下Redis集群配置,以下是配置过程中出现的几个问题: [1]逐个启动7001 7002 7003 7004 7005 7006节点时,出现createing server T ...
- Linux系统下安装Redis和Redis集群配置
Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...
- Centos6.6部署Redis集群
Centos6.6部署Redis集群 1环境准备 1环境安装redis 1安装ruby 2配置redis主从环境 3部署redis sentinel服务器 5集群使用 13当前集群环境说明 13测试功 ...
- CentOS下redis集群安装
环境: 一台CentOS虚拟机上部署六个节点,创建3个master,3个slave节点 1.下载并解压 cd /root wget http://download.redis.io/releases/ ...
- Redis集群配置(linux)
*弄了一天,有问题直接问我.qq:137416943 1.redis集群的配置和简单使用 Redis集群配置 0.首先要配置环境: 0.1 安装c++ yum install gcc-c++ ...
- Centos6.9下RabbitMQ集群部署记录
之前简单介绍了CentOS下单机部署RabbltMQ环境的操作记录,下面详细说下RabbitMQ集群知识,RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言, ...
随机推荐
- 动态NAT地址转换
1.配置路由器的端口ip地址(注意外网和内网ip地址的设置) Router(config)#inter f0/0 Router(config-if)#ip add 192.168.1.1 255.25 ...
- "0" 并不一定是 假 (false)
写习惯C/C++系代码的人应该很习惯看见类似这样的代码: 1 2 3 4 5 int i = 0; ...... if(i){ //这里代码不会被执行 } 因此写习惯以后会想当然地觉得其他语言里 ...
- kvm : Permission denied
创建虚拟机类型为:“virt type :kvm” 时,会报如下错误: Could not access KVM kernel module: Permission denied failed to ...
- Server 2008 R2 安装活动目录和配置DNS及故障解决
一.安装windows2008_64bit_r2 给服务器设置密码:xxxxxxxx 二.安装配置DNS规则 1.更改服务器主机名:DCserver 2.配置静态IP地址 IP地址:10.0.100. ...
- oracle 10g函数大全--其他函数
DUMP(w[,x[,y[,z]]]) [功能]返回数据类型.字节长度和在内部的存储位置. [参数] w为各种类型的字符串(如字符型.数值型.日期型……) x为返回位置用什么方式表达,可为:8,10, ...
- 支付宝支付系统繁忙,请稍后再试(ALI64)错误解决
解决方法:将商户支付參数的seller邮箱换成与partner同样的数字串,依然无法支付请检查所给參数
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办
一般提示如下 点击Device,然后选中当前真正连接到的网卡 一般是由于重装系统之后,没有把本来是realtime capable的设备Install,所以找不到支持EtherCAT的设备导致 ...
- java.net.ConnectException: failed to connect to /10.0.2.2 (port 80): connect
在使用GENYMOTION作为Android程序调试模拟器连接web服务器时,报了:java.net.ConnectException: failed to connect to /10.0.2.2 ...
- U盘制作linux centos6.5
2015年8月4日 1.下载ULTIso软件,注册 2.DVD1的那个拖进去 3.[一定要双击那个进去]才“写入硬盘镜像”,否则只“写入‘,还是一个iso文件,不是提取出来的文件. 4.覆盖相应的文件 ...
- BZOJ 1016 JSOI 2008 最小生成树计数 Kruskal+搜索
题目大意:给出一些边,求出一共能形成多少个最小生成树. 思路:最小生成树有非常多定理啊,我也不是非常明确.这里仅仅简单讲讲做法.关于定各种定理请看这里:http://blog.csdn.net/wyf ...