安装redis
关闭防火墙 SElinux 之类的
yum -y install gcc gcc-c++ libstdc++-devel
tar -xf /opt/app/redis-5.0.14.tar.gz
cd /opt/app/redis-5.0.14;make
make install PREFIX=/usr/local/redis 指定安装目录
echo -e "PATH=/usr/local/redis/bin:\$PATH\nexport PATH" >> /etc/profile
source /etc/profile
配置全局环境变量
redis 安装完毕
-------------------------------------------------------------------
开始集群创建
由于是两台服务器 后续命令在26上执行,命令前面就加26,在15执行加15,不加代表两台都执行
使用 1.1.1.26 1.1.1.15两次服务器搭建三主三从集群
mkdir /data/redis/redis-cluster -p
26 mkdir /data/redis/redis-cluster/700{1..3}
15 mkdir /data/redis/redis-cluster/700{4..6}
创建配置文件
26 cd /data/redis/redis-cluster/
for((i=7001;i<=7003;i++))
do
cat > ${i}/redis_${i}.conf <<EOF
port ${i}
#默认ip为127.0.0.1,需要改为其他节点机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群
bind 1.1.1.26
daemonize yes
logfile /var/run/redis_${i}.log
pidfile /var/run/redis_${i}.pid
cluster-enabled yes
cluster-config-file nodes_${i}.conf
cluster-node-timeout 10100
appendonly yes
#requirepass 123 不用密码
#masterauth 123 不用密码
#loadmodule /opt/app/RedisBloom-2.2.3/redisbloom.so 布隆过滤器,看业务需求
#maxmemory 500MB
maxmemory-policy volatile-lru
EOF
done
15 cd /data/redis/redis-cluster/
for((i=7004;i<=7006;i++))
do
cat > ${i}/redis_${i}.conf <<EOF
port ${i}
#默认ip为127.0.0.1,需要改为其他节点机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群
bind 1.1.1.15
daemonize yes
logfile /var/run/redis_${i}.log
pidfile /var/run/redis_${i}.pid
cluster-enabled yes
cluster-config-file nodes_${i}.conf
cluster-node-timeout 10100
appendonly yes
#requirepass 123 不用密码
#masterauth 123 不用密码
#loadmodule /opt/app/RedisBloom-2.2.3/redisbloom.so 布隆过滤器,看业务需求
#maxmemory 500MB
maxmemory-policy volatile-lru
EOF
done
启动节点
26 for((i=7001;i<=7003;i++));do /usr/local/redis/bin/redis-server /data/redis/redis-cluster/${i}/redis_${i}.conf; done
15 for((i=7004;i<=7006;i++));do /usr/local/redis/bin/redis-server /data/redis/redis-cluster/${i}/redis_${i}.conf; done
创建集群
在任意一台服务器上运行即可
/usr/local/redis/bin/redis-cli --cluster create --cluster-replicas 1 1.1.1.26:7001 1.1.1.26:7002 1.1.1.26:7003 1.1.1.15:7004 1.1.1.15:7005 1.1.1.15:7006
--cluster-replicas 1:表示1个master下挂1个slave; --cluster-replicas 2:表示1个master下挂2个slave。
关闭集群 pkill redis
或者逐个关闭
for((i=7001;i<=7003;i++));do /usr/local/redis/bin/redis-cli -c -h 1.1.1.26 shutdown; done
验证集群
连接任意一个节点
redis-cli -c -h 1.1.1.26 -p 7001
从上面可以看到 slave挂在哪个 master 下面
集群这样就可以了
redis-cli --cluster check 1.1.1.26:700
参考文章