centos下Redis5集群搭建 version : redis-5.0.3 、linux:centos/redhat

最近由于QA环境部分资源被回收,需要自己重新搭建一个Redis集群;去官网看了看,选了最新的Stable的Redis-5.0.3,Redis 5.0之后放弃 Ruby的集群方式,改成使用C语言编写的 redis-cli的方式,这使得集群的构建方式复杂度降低许多, 特地记录一下安装过程;
https://redis.io/topics/cluster-tutorial Redis官网查看集群搭建方式

1. 准备工作

  • 两台linux虚拟机(192.168.3.108192.168.3.109
  • 去redis官网下载redis-5.0.3.tar.gz (点击下载),拷文件到/usr 目录;
  • 执行yum install gcc(GNU Compiler Collection);
  • 执行yum install -y tcl(Tool Command Language);

2.编译安装

  • 执行 tar -zxvf redis-5.0.3.tar.gz解压到/usr目录下;
  • 进入redis-5.0.3目录;
  • 执行make编译;
  • 若出现如下提示,则说明未安装gcc,gcc-4.4.7-4.el6.x86_64.rpm,使用命令安装gcc:yum install gcc
 	/bin/sh: cc: command not found
 	make[1]: *** [adlist.o] Error 127
 	make[1]: Leaving directory `/usr/redis-5.0.3/src‘ 
	make: *** [all] Error 2
  • 若出现如下提示,则将执行make改为执行make MALLOC=libc,可能是因为编译库的问题;
	In file included from adlist.c:34:
	zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
 	zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
 	make[1]: *** [adlist.o] Error 1
 	make[1]: Leaving directory `/usr/redis-5.0.3/src‘
	make: *** [all] Error 2
  • 再执行make install执行成功后到此编译安装结束;

3、集群搭建

  • 查看/usr目录下有一个redis-5.0.3目录,在/usr目录下执行mkdir redis-5.0.3-cluster再建一个集群目录;
  • 在集群目录redis-5.0.3-cluster中新建3个文件夹700470057006 对应不同节点端口;
  • 将 redis-5.0.3目录下的redis.conf文件分别拷贝到700470057006目录中;
  • 修改三个端口目录下redis.conf文件(端口号类推)

具体修改:
(1)port 7004 #绑定端口
(2)bind 192.168.3.108 #定IP也(也可以注释掉,这样任何客户端都可以连接了)
(3)dir /usr/local/redis-5.0.3-cluster/7004 #指定文件存放路径 ( .rdb .aof nodes-7004.conf)
(4)cluster-enabled yes #启动集群模式
(5)daemonize yes #后台启动
(6)cluster-node-timeout 15000 #指定集群节点超时时间​
(7)appendonly yes #指定持久化方式
(8)protected-mode no #非保护模式

  • cd /usr 在/usr目录下
  • 执行:
	local/bin/redis-server redis-5.0.3-cluster/7004/redis.conf 
	local/bin/redis-server redis-5.0.3-cluster/7005/redis.conf 
	local/bin/redis-server redis-5.0.3-cluster/7006/redis.conf

启动这三个节点,可以执行ps -ef | grep redis 查看这三个节点运行pid,确保节点启动正常。至此192.168.3.108三个节点安装完成;

  • 在另一台192.168.3.109重复上述操作,启动三个节点700770087009
  • 至此两台机器,六个节点都正常启动。

4、启动集群

  • 进入bin目录
cd /usr/local/bin

-执行

redis-cli --cluster create 192.168.3.108:7004 192.168.3.108:7005 192.168.3.108:7006 192.168.3.109:7007 192.168.3.109:7008 192.168.3.109:7009 --cluster-replicas 1 
  • 启动过程输入yes,集群应该启动正常;
  • 可能出现异常 no route to host 这是系统防火墙没关;
  • 可能应为节点数量过少启动失败, --cluster-replicas 1的意思就是为集群中的每个主节点创建1个从节点,而集群必须要3个或3个以上的主节点,所以这样6个节点是最基本的,否则创建集群就会失败;这样的配置只要有一个主节点掉线,整个集群就无法提供服务了,因为当主节点存活数低于总节点数的一半,集群就无法提供服务;

5、熄灯

redis cluster中的每个节点都是平等的关系,每个节点都保存各自的数据和整个集群的状态。节点之间互相连接并保持活跃,这样只要连接集群中任意一个节点,就可以获取到其他节点数据。
参考 : redis 5.0.3 讲解、集群搭建

你可能感兴趣的:(开发随笔)