// 3主机6节点
// 三台分别执行,除ip不一致,其他均无差异
// 下载安装包
mkdir -p /data/redis
cd /data/redis
wget http://download.redis.io/releases/redis-5.0.9.tar.gz
tar xf redis-5.0.9.tar.gz
mv redis-5.0.9 redis
mkdir {7001,7002}/{conf,db,log} -p
//编译redis
yum install gcc -y
cd redis && make
cd src && make install
// 修改bind为主机ip
// requirepass masterauth 为密码
// 7001
cat >/data/redis/7001/conf/redis_7001.conf <<EOF
daemonize yes
bind 10.0.0.1
port 7001
pidfile /data/redis/7001/redis_7001.pid
logfile /data/redis/7001/log/redis_7001.log
dbfilename "redis_7001.rdb"
dir /data/redis/7001/db/
requirepass test
appendonly yes
appendfilename "redis.aof"
appendfsync everysec
cluster-enabled yes
cluster-config-file nodes_7001.conf
cluster-node-timeout 15000
masterauth test
EOF
// 7002
cat >/data/redis/7002/conf/redis_7002.conf <<EOF
daemonize yes
bind 10.0.0.2
port 7002
pidfile /data/redis/7002/redis_7002.pid
logfile /data/redis/7002/log/redis_7002.log
dbfilename "redis_7002.rdb"
dir /data/redis/7002/db/
requirepass test
appendonly yes
appendfilename "redis.aof"
appendfsync everysec
cluster-enabled yes
cluster-config-file nodes_7002.conf
cluster-node-timeout 15000
masterauth test
EOF
// 启动
/data/redis/redis/src/redis-server /data/redis/7001/conf/redis_7001.conf
/data/redis/redis/src/redis-server /data/redis/7002/conf/redis_7002.conf
// 在另外2主机进行相同操作
// 初始化集群
/data/redis/redis/src/redis-cli -a "test" -p 7001 --cluster create 10.0.0.1:7001 10.0.0.1:7002 10.0.0.2:7001 10.0.0.2:7002 10.0.0.3:7001 10.0.0.3:7002 --cluster-replicas 1
// 检查集群
/data/redis/redis/src/redis-cli -a "test" -p 7001 --cluster check 10.0.0.2 7001
// 配置开机自启动。
// 配置定时任务,程序丢失自启动
// 编写脚本
cd /data/redis/
vim redis_start.sh
#!/bin/bash
pid_7001=`ps -ef|grep 7001|grep -v grep |awk '{print $2}'`
pid_7002=`ps -ef|grep 7002|grep -v grep |awk '{print $2}'`
if [ "" == "$pid_7001" ]; then
/data/redis/redis/src/redis-server /data/redis/7001/conf/redis_7001.conf
fi
if [ "" == "$pid_7002" ]; then
/data/redis/redis/src/redis-server /data/redis/7002/conf/redis_7002.conf
fi
chmod +x redis_start.sh
crontab -e
* * * * * /bin/bash /data/redis/redis_start.sh &>/dev/null