cluster集群模式目前最少支持六端口操作,所以至少开六个端口用于集群操作
安装:
1,yum install gcc-c++
- 安装环境centOS
2,wget http://download.redis.io/releases/redis-5.0.7.tar.gz
- 获取压缩包
- 我的安装路径:/usr/local/redis
3,tar -zxvf redis-5.0.7.tar.gz
- 解压
4,cd redis-5.0.7
- 切换到对应目录
5,make
自此,redis已经安装成功
6,./src/redis-server redis.conf
- 启动redis,指定配置文件
服务启动成功如下:
然后我们down掉当前redis进程
# ps -ef | grep -i redis
# kill -9 xxxx
redis-cli中可用
# redis-cli shutdown
当前我们准备三台虚拟机。共开六个端口
ip1: 192.168.252.129 port1:6000 port2:6001
ip2: 192.168.252.130 port1:6002 port2:6003
ip3: 192.168.252.131 port1:6004 port2:6005
在redis目录下新建config文件夹。
config下新增两个配置文件
master-6000.conf
# redis后台运行
daemonize yes
# 绑定的主机端口
bind 192.168.252.129
# 数据存放目录
#dir /redis-5.0.7/config/redis-cluster/data/redis-6000
# 进程文件
pidfile /redis-5.0.7/config/redis-cluster/6000.pid
# 日志文件
logfile /redis-5.0.7/config/redis-cluster/6000.log
# 端口号
port 6000
# 开启集群模式,把注释#去掉
cluster-enabled yes
# 集群的配置,配置文件首次启动自动生成
cluster-config-file /redis-5.0.7/config/6000.conf
# 请求超时,设置10秒
cluster-node-timeout 10000
# aof日志开启,有需要就开启,它会每次写操作都记录一条日志
appendonly yes
protected-mode no
master-6001.conf
# redis后台运行
daemonize yes
# 绑定的主机端口
bind 192.168.252.129
# 数据存放目录
#dir /redis-5.0.7/config/redis-cluster/data/redis-6000
# 进程文件
pidfile /redis-5.0.7/config/redis-cluster/6000.pid
# 日志文件
logfile /redis-5.0.7/config/redis-cluster/6000.log
# 端口号
port 6000
# 开启集群模式,把注释#去掉
cluster-enabled yes
# 集群的配置,配置文件首次启动自动生成
cluster-config-file /redis-5.0.7/config/6000.conf
# 请求超时,设置10秒
cluster-node-timeout 10000
# aof日志开启,有需要就开启,它会每次写操作都记录一条日志
appendonly yes
protected-mode no
其余两台虚拟机做对应设置
然后在任意虚拟机输入redis-cli集群命令
redis-cli --cluster create 192.168.252.129:6000 192.168.252.130:6002 192.168.252.131:6004 192.168.252.129:6001 192.168.252.130:6003 192.168.252.131:6005 --cluster-replicas 1
6000,6001,6002前三台主机端口对应为master ,后三台为从机。
在redis-cli建立时可能报错,参照防火墙状态关闭下就可以
查看防火墙状态:firewall-cmd --state
临时关闭 sudo systemctl stop firewalld
cluster有关槽位的介绍可看其他文章,以下是查看当前数据存放槽位的命令
cluster keyslot "aa"
同时可设置开机启动
#!/bin/bash
path=/redis-5.0.7/config
cd $path
redis-server master-6000.conf
redis-server master-6001.conf#暂时关闭防火墙
sudo systemctl stop firewalld
redis-cli --cluster命令可添加到最后启动的机器。