Redis5配置Cluster集群

*本文Redis为yum安装,如果使用源码安装的Redis,配置文件需到源码包解压的文件中获取,redis的命令在指定安装目录的bin文件夹中*

Redis 5.0 以上版本的Cluster模式最低需要6个节点

安装Redis

yum -y redis

创建目录redis_cluster并在此目录下再创建7001 7002 7003 7004 7005 7006共6个目录

mkdir /usr/local/redis_cluster

mkdir /usr/local/redis_cluster/{7001,7002,7003,7004,7005,7006}

拷贝redis.conf文件到redis_cluster目录

cp -p /etc/redis.conf /usr/local/redis_cluster/7001.conf

修改7001.conf如下部分

vim /usr/local/redis_cluster/7001.conf
daemonize yes #后台启动

port 7001 #修改端口号

dbfilename dump-7001.rdb#修改数据文件

pidfile /var/run/redis-7001.pid #修改PID文件

logfile /usr/local/redis_cluster/7001/redis-7001.log #修改日志文件

cluster-enabled yes #开启cluster,去掉注释

cluster-config-file nodes-7001.conf #自动生成

cluster-node-timeout 15000 #节点通信时间

appendonly yes #持久化方式

生成其他实例的conf文件

cd /usr/local/redis_cluster/
cp -p 7001.conf 7002.conf

cp -p 7001.conf 7003.conf

cp -p 7001.conf 7004.conf

cp -p 7001.conf 7005.conf

cp -p 7001.conf 7006.conf

修改其它conf的配置

sed -i s/7001/7002/g 7002.conf

sed -i s/7001/7003/g 7003.conf

sed -i s/7001/7004/g 7004.conf

sed -i s/7001/7005/g 7005.conf

sed -i s/7001/7006/g 7006.conf

移动各自的配置文件到各自的目录

mv 7001.conf 7001

mv 7002.conf 7002

mv 7003.conf 7003

mv 7004.conf 7004

mv 7005.conf 7005

mv 7006.conf 7006

创建启动脚本

vim start-redis-all.sh
redis-server /usr/local/redis_cluster/7001/7001.conf

redis-server /usr/local/redis_cluster/7002/7002.conf

redis-server /usr/local/redis_cluster/7003/7003.conf

redis-server /usr/local/redis_cluster/7004/7004.conf

redis-server /usr/local/redis_cluster/7005/7005.conf

redis-server /usr/local/redis_cluster/7006/7006.conf

改变所有者

chown -R redis ./

启动redis

sh ./start-redis-all.sh

检查启动进程

ps -aux |grep cluster

创建群

redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

出现如下图的两个ok,就表示创建完成

查看集群

查看进程

ps -aux |grep redis

登录集群

redis-cli -c -p 7001

查看集群节点

cluster nodes

 创建开机启动

vim /etc/init.d/redis-manage
#!/bin/sh
# 
# Simple Redis init.d script for manange Redis start or stop
# chkconfig: 2345 80 90
# description: Uesd for Redis Cluster

REDISPORT1=7001
REDISPORT2=7002
REDISPORT3=7003
REDISPORT4=7004
REDISPORT5=7005
REDISPORT6=7006
REDISCONF=/usr/local/redis_cluster

EXEC=redis-server
CLIEXEC=redis-cli

case "$1" in
    start)
        CONF="${REDISCONF}/${REDISPORT1}/${REDISPORT1}.conf"
        echo "Starting Redis server on $REDISPORT1..."
        $EXEC $CONF &
!
        CONF="${REDISCONF}/${REDISPORT2}/${REDISPORT2}.conf"
        echo "Starting Redis server on $REDISPORT2..."
        $EXEC $CONF &
!
        CONF="${REDISCONF}/${REDISPORT3}/${REDISPORT3}.conf"
        echo "Starting Redis server on $REDISPORT3..."
        $EXEC $CONF &
!
        CONF="${REDISCONF}/${REDISPORT4}/${REDISPORT4}.conf"
        echo "Starting Redis server on $REDISPORT4..."
        $EXEC $CONF &
!
        CONF="${REDISCONF}/${REDISPORT5}/${REDISPORT5}.conf"
        echo "Starting Redis server on $REDISPORT5..."
        $EXEC $CONF &
!
        CONF="${REDISCONF}/${REDISPORT6}/${REDISPORT6}.conf"
        echo "Starting Redis server on $REDISPORT6..."
        $EXEC $CONF &
!
        ;;
stop)
    es_pid=`ps -aux |grep redis |grep ${REDISPORT1} |grep -v grep |awk '{print $2}'`
    kill -9 $es_pid
    echo "$REDISPORT1 stopped"
    es_pid=`ps -aux |grep redis |grep ${REDISPORT2} |grep -v grep |awk '{print $2}'`
    kill -9 $es_pid
    echo "$REDISPORT2 stopped"
    es_pid=`ps -aux |grep redis |grep ${REDISPORT3} |grep -v grep |awk '{print $2}'`
    kill -9 $es_pid
    echo "$REDISPORT3 stopped"
    es_pid=`ps -aux |grep redis |grep ${REDISPORT4} |grep -v grep |awk '{print $2}'`
    kill -9 $es_pid
    echo "$REDISPORT4 stopped"
    es_pid=`ps -aux |grep redis |grep ${REDISPORT5} |grep -v grep |awk '{print $2}'`
    kill -9 $es_pid
    echo "$REDISPORT5 stopped"
    es_pid=`ps -aux |grep redis |grep ${REDISPORT6} |grep -v grep |awk '{print $2}'`
    kill -9 $es_pid
    echo "$REDISPORT6 stopped"

    ;;
*)
    echo "start|stop"
    ;;
esac

exit $?

添加执行权限

chmod +x /etc/init.d/redis-manage

验证脚本无错误

sh /etc/init.d/redis-manage stop

返回无报错,且结果为下图所示则表示脚本中stop部分的命令运行正常

 验证开启功能

sh /etc/init.d/redis-manage start

返回无报错,且结果如下图所示则表示脚本中start部分的命令正常

添加开机启动

chkconfig --add redis-manage

附录:关于报错

1、创建集群报错,报错信息如下:

*** ERROR: Invalid configuration for cluster creation.

*** Redis Cluster requires at least 3 master nodes.

*** This is not possible with 4 nodes and 1 replicas per node.

*** At least 6 nodes are required.

本文开始已有说明Redis5.0开始Cluster模式需要6个节点,此报错的意思是Cluster至少需要3个master节点,每个节点需要1个从节点,只有4个节点无法创建。

2、创建集群报错,命令如下:

redis-cli create 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --replicas 1

Could not connect to Redis at 127.0.0.1:6379: Connection refused

原因:

如果安装的是5.0以前的词报错了能是其它原因,而5.0以后创建Cluster需要加一个参数和变化一个参数

redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

  Redis5版本的详细参数信息可以找此篇文章,介绍的非常详细

Redis-5.0.5集群配置 - -见 - 博客园

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值