首先准备三台虚拟机
node1:192.168.116.141
node2:192.168.116.143
node3:192.168.116.144
安装依赖环境
- 安装依赖
//安装vim命令
yum -y install vim
//安装gcc 、 wget
yum -y install gcc gcc-c++ wget
- 注意事项 ,因为这里使用的是Redis6.0.6和CentOS 7.9.2009,请先检查gcc的版本是否低于5,如果是请先升级
// 如果gcc版小于5 执行下面的三个命令
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash
- 修改配置
三台虚拟机的/etc/hosts都需要修改
vim /etc/hosts
192.168.116.141 redis-node-1
192.168.116.143 redis-node-2
192.168.116.144 redis-node-3
开始安装
使用xftp将redis-6.0.10的压缩包上传到虚拟机中
我这里将压缩包放在了opt目录下
开始解压
tar -zxf redis-6.0.10.tar.gz
cd redis-6.0.10
make && make PREFIX=/usr/local/redis install
//查看是否编译安装成功,执行 如下命令,如果输出0 表示redis安装成功了
echo $?
修改profile文件
vim /etc/profile
// 将这两句追加到文件末尾
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin
// 修改完毕后重新加载一下profile
source /etc/profile
分别创建两个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
# 绑定服务器域名或IP地址
bind redis-node-1
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile /var/run/redis-7001.pid
# 日志文件名称,以端口号为目录来区分
logfile /usr/local/redis/redis_cluster/7001/logs/redis.log
# 数据文件存放地址,以端口号为目录名来区分
dir /usr/local/redis/redis_cluster/7001/data
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file nodes_7001.conf
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
创建7002配置文件
vim /usr/local/redis/redis_cluster/7002/conf/redis.conf
# 绑定服务器域名或IP地址
bind redis-node-1
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile /var/run/redis-7002.pid
# 日志文件名称,以端口号为目录来区分
logfile /usr/local/redis/redis_cluster/7002/logs/redis.log
# 数据文件存放地址,以端口号为目录名来区分
dir /usr/local/redis/redis_cluster/7002/data
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file nodes_7002.conf
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
然后用xftp将redis_cluster文件拽到windows桌面 然后上传到同目录下的第二台 第三台虚拟机上
vim 修改两台虚拟机中的7001 7002配置文件的
修改第二台虚拟机中7001的bind
vim /usr/local/redis/redis_cluster/7001/conf/redis.conf
# 绑定服务器域名或IP地址
bind redis-node-2
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile /var/run/redis-7001.pid
# 日志文件名称,以端口号为目录来区分
logfile /usr/local/redis/redis_cluster/7001/logs/redis.log
# 数据文件存放地址,以端口号为目录名来区分
dir /usr/local/redis/redis_cluster/7001/data
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file nodes_7001.conf
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
修改第二台虚拟机中7002的bind
vim /usr/local/redis/redis_cluster/7002/conf/redis.conf
# 绑定服务器域名或IP地址
bind redis-node-2
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile /var/run/redis-7002.pid
# 日志文件名称,以端口号为目录来区分
logfile /usr/local/redis/redis_cluster/7002/logs/redis.log
# 数据文件存放地址,以端口号为目录名来区分
dir /usr/local/redis/redis_cluster/7002/data
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file nodes_7002.conf
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
修改第三台虚拟机中7001的bind
vim /usr/local/redis/redis_cluster/7001/conf/redis.conf
# 绑定服务器域名或IP地址
bind redis-node-3
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile /var/run/redis-7001.pid
# 日志文件名称,以端口号为目录来区分
logfile /usr/local/redis/redis_cluster/7001/logs/redis.log
# 数据文件存放地址,以端口号为目录名来区分
dir /usr/local/redis/redis_cluster/7001/data
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file nodes_7001.conf
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
修改第三台虚拟机中7002的bind
vim /usr/local/redis/redis_cluster/7002/conf/redis.conf
# 绑定服务器域名或IP地址
bind redis-node-3
# 设置端口,区分集群中Redis的实例
port 7001
# 后台运行
daemonize yes
# pid进程文件名,以端口号命名
pidfile /var/run/redis-7002.pid
# 日志文件名称,以端口号为目录来区分
logfile /usr/local/redis/redis_cluster/7002/logs/redis.log
# 数据文件存放地址,以端口号为目录名来区分
dir /usr/local/redis/redis_cluster/7002/data
# 启用集群
cluster-enabled yes
# 配置每个节点的配置文件,同样以端口号为名称
cluster-config-file nodes_7002.conf
# 配置集群节点的超时时间
cluster-node-timeout 15000
# 启动AOF增量持久化策略
appendonly yes
# 发生改变,则记录日志
appendfsync always
启动三台虚拟机中的redis节点并查看状态
redis-server /usr/local/redis/redis_cluster/7001/conf/redis.conf
redis-server /usr/local/redis/redis_cluster/7002/conf/redis.conf
ps -ef | grep redis
在任意一台机器上使用 reids-cli 创建Redis集群 (注:这里必须使用IP,如果使用像redis-node-1这样的域名,则会报错)
redis-cli --cluster create 192.168.116.141:7001 192.168.116.143:7001 192.168.116.144:7001 192.168.116.141:7002 192.168.116.143:7002 192.168.116.144:7002 --cluster-replicas 1
查看集群的状态
redis-cli --cluster check 192.168.116.141:7001
集群创建成功,开始测试集群是否正常
在集群中的任意一台测试都可以,如我们可以在141上连接143上的7001节点并添加一个数据
redis-cli -c -h 192.168.116.143 -p 7001
大功告成!!!!!!