CentOS 7搭建Redis5.0.5集群(三台机器,3主3备)
准备工作
- 准备三台centos 7的机器:如下图机器的分配情况(每台机器关闭防火墙):
IP | master节点 | salve节点 |
192.168.0.166 |
redis-166:7001 |
redis-166:7002 |
192.168.0.167 |
redis-167:7001 |
redis-167:7002 |
192.168.0.168 |
redis-168:7001 |
redis-168:7002 |
- 设置三台机器的/etc/hosts,每台都要添加如下三行,保存退出
[root@localhost tools]# vim /etc/hosts
192.168.0.166 redis-166
192.168.0.167 redis-167
192.168.0.168 redis-168
- 官网下载redis-5.0.5版本: http://download.redis.io/releases/redis-5.0.5.tar.gz
- 把下载的包上传到上面3台centos中
开始安装
我们以192.168.0.166机器安装为例,其他两台只是配置文件的IP不一样
- 如果centos中没有gcc环境,则需要先安装gcc。如果有就直接看下一步。
[root@localhost tools]
- 解压redis包到当前目录下
[root@localhost tools]# tar -zxvf redis-5.0.5.tar.gz
- 进入刚解压出来的redis目录,开始编译安装
[root@localhost tools]
- 查看是否编译安装成功,执行 如下命令,如果输出0 表示redis安装成功了
[root@localhost redis-5.0.5]
- 配置环境变量,在/etc/profile文件最后添加如下内容:
[root@localhost tools]
- 其他167和168两台机器,安装redis跟上面166机器完全一样
集群配置
我们还是以192.168.0.166机器安装为例,其他两台只是配置文件的IP不一样
- 分别创建两个7001和7002的配置文件目录conf,日志目录logs,数据存储目录data,如下命令:
mkdir -p /usr/local/redis/redis_cluster/7001/conf/
mkdir -p /usr/local/redis/redis_cluster/7001/logs/
mkdir -p /usr/local/redis/redis_cluster/7001/data/
mkdir -p /usr/local/redis/redis_cluster/7002/conf/
mkdir -p /usr/local/redis/redis_cluster/7002/logs/
mkdir -p /usr/local/redis/redis_cluster/7002/data/
- 创建7001的配置文件,并添加如下内容:
vim /usr/local/redis/redis_cluster/7001/conf/redis.conf
- 创建7002的配置文件,并添加如下内容:
vim /usr/local/redis/redis_cluster/7002/conf/redis.conf
- 其他167和168两台机器,集群配置跟上面166机器配置只是域名不同,其他设置都是一样的
启动集群
- 在保证上面166,167,168都配置完成后,开始启动166,167,168各节点
redis-server /usr/local/redis/redis_cluster/7001/conf/redis.conf
redis-server /usr/local/redis/redis_cluster/7002/conf/redis.conf
- 查看各机器上的各节点是否都启动成功
[root@localhost redis-5.0.5]# ps -ef | grep redis
root 6460 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-166:7001 [cluster]
root 6471 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-166:7002 [cluster]
[root@localhost redis-5.0.5]# ps -ef | grep redis
root 6532 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-167:7001 [cluster]
root 6548 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-167:7002 [cluster]
[root@localhost redis-5.0.5]# ps -ef | grep redis
root 6486 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-168:7001 [cluster]
root 6498 1 0 14:14 ? 00:00:10 /usr/local/redis/bin/redis-server redis-168:7002 [cluster]
- 使用 reids-cli 创建Redis集群 (
注:这里必须使用IP,如果使用像redis-166这样的域名,则会报错,具体原因我也不清楚
)
redis-cli --cluster create 192.168.0.166:7001 192.168.0.167:7001 192.168.0.168:7001 192.168.0.166:7002 192.168.0.167:7002 192.168.0.168:7002 --cluster-replicas 1
- 查看我们刚创建集群的状态,如下命令:(在3台集群中的任意一台机器查看任意节点都一样,会带出所有的节点信息)
[root@localhost redis-5.0.5]# redis-cli --cluster check 192.168.0.167:7001
192.168.0.167:7001 (b909c05c...) -> 0 keys | 5462 slots | 1 slaves.
192.168.0.166:7001 (e136a43b...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.168:7001 (4bf0b7df...) -> 1 keys | 5461 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.167:7001)
M: b909c05ca4c89695fee7b4799050312ed20c989e 192.168.0.167:7001
slots:[5461-10922] (5462 slots) master
1 additional replica