最近由于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.108、192.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个文件夹
7004、7005、7006对应不同节点端口; - 将 redis-5.0.3目录下的
redis.conf文件分别拷贝到7004、7005、7006目录中; - 修改三个端口目录下
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重复上述操作,启动三个节点7007、7008、7009 - 至此两台机器,六个节点都正常启动。
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 讲解、集群搭建
496

被折叠的 条评论
为什么被折叠?



