Linux搭建Redis集群

Linux搭建Redis集群

1.下载redis的压缩包

Index of /releases/

2.将压缩包放在/usr/local,并解压

tar -zxvf redis-5.0.8.tar.gz

3.进入解压后的文件目录

cd redis-5.0.8

4.执行make命令编译

make

5.编译成功之后进入src文件夹,执行make install

make install

 

6.进入/usr/local(redis-5.0.8同级目录),并创建集群文件夹redis_cluster

cd /usr/local
mkdir redis_cluster

7.进入redis_cluster,分别创建7001-7006文件夹

mkdir 7001 7002 7003 7004 7005 7006

8.分别复制redis-5.0.8文件夹中的服务端和配置文件到7001-7006中

cp /usr/local/redis-5.0.8/src/redis-server /usr/local/redis_cluster/7001/
cp /usr/local/redis-5.0.8/src/redis-server /usr/local/redis_cluster/7002/
cp /usr/local/redis-5.0.8/src/redis-server /usr/local/redis_cluster/7003/
cp /usr/local/redis-5.0.8/src/redis-server /usr/local/redis_cluster/7004/
cp /usr/local/redis-5.0.8/src/redis-server /usr/local/redis_cluster/7005/
cp /usr/local/redis-5.0.8/src/redis-server /usr/local/redis_cluster/7006/
cp /usr/local/redis-5.0.8/redis.conf /usr/local/redis_cluster/7001/
cp /usr/local/redis-5.0.8/redis.conf /usr/local/redis_cluster/7002/
cp /usr/local/redis-5.0.8/redis.conf /usr/local/redis_cluster/7003/
cp /usr/local/redis-5.0.8/redis.conf /usr/local/redis_cluster/7004/
cp /usr/local/redis-5.0.8/redis.conf /usr/local/redis_cluster/7005/
cp /usr/local/redis-5.0.8/redis.conf /usr/local/redis_cluster/7006/

9.修改以下几个配置

#将bind注释掉或者改为0.0.0.0
#bind 127.0.0.1
#port改为你配置的端口
port=7001
#指定redis要用守护进程的方式启动
daemonize yes
#开启集群
cluster-enabled yes
#集群的配置文件
cluster-config-file node-7001.conf
#集群节点超时时间
cluster-node-timeout 15000
#protect-mode:是为了禁止公网访问redis cache 需要关掉
protected-mode no
#配置集群映射的公网IP 这里要写公网ip,也就是外网能能访问的IP,必须要配置,不然外网无法访问集群
cluster-announce-ip 192.168.0.75
#配置集群映射的端口,要和上面端口相对应
cluster-announce-port 7001
#配置集群映射的总线端口,开一个redis集群端口,就必须开一个总线端口,总线端口为端口+10000
cluster-announce-bus-port 17001
#开启AOF持久化策略
appendonly yes
#将端口改掉
pidfile /var/run/redis_6380.pid
#生成文件地址,方便编写启动脚本
dir /usr/local/redis_cluster/7001/
#设置密码
requirepass 123456

10.创建集群脚本

vim /etc/init.d/redis_cluster

#!/bin/sh

# chkconfig: 2345 80 90

#

# Simple Redis init.d script conceived to work on Linux systems

# as it does use of the /proc filesystem.

REDISPORT1=7001
REDISPORT2=7002
REDISPORT3=7003
REDISPORT4=7004
REDISPORT5=7005
REDISPORT6=7006

HOSTIP=192.168.0.75

EXEC1=/usr/local/redis-5.0.8/src/redis-server
EXEC2=/usr/local/redis-5.0.8/src/redis-server
EXEC3=/usr/local/redis-5.0.8/src/redis-server
EXEC4=/usr/local/redis-5.0.8/src/redis-server
EXEC5=/usr/local/redis-5.0.8/src/redis-server
EXEC6=/usr/local/redis-5.0.8/src/redis-server
CLIEXEC=/usr/local/redis-5.0.8/src/redis-cli

# pid file path

PIDFILE=/var/run/redis_${REDISPORT1}.pid

CONF1="/usr/local/redis_cluster/${REDISPORT1}/redis.conf"
CONF2="/usr/local/redis_cluster/${REDISPORT2}/redis.conf"
CONF3="/usr/local/redis_cluster/${REDISPORT3}/redis.conf"
CONF4="/usr/local/redis_cluster/${REDISPORT4}/redis.conf"
CONF5="/usr/local/redis_cluster/${REDISPORT5}/redis.conf"
CONF6="/usr/local/redis_cluster/${REDISPORT6}/redis.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Redis cluster server is Starting..."
                $EXEC1 $CONF1 &
                $EXEC2 $CONF2 &
                $EXEC3 $CONF3 &
                $EXEC4 $CONF4 &
                $EXEC5 $CONF5 &
                $EXEC6 $CONF6 &
                echo "Redis cluster start success."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -h $HOSTIP -p $REDISPORT1 -a 123456 shutdown
                $CLIEXEC -h $HOSTIP -p $REDISPORT2 -a 123456 shutdown
                $CLIEXEC -h $HOSTIP -p $REDISPORT3 -a 123456 shutdown
                $CLIEXEC -h $HOSTIP -p $REDISPORT4 -a 123456 shutdown
                $CLIEXEC -h $HOSTIP -p $REDISPORT5 -a 123456 shutdown
                $CLIEXEC -h $HOSTIP -p $REDISPORT6 -a 123456 shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis cluster to shutdown ..."
                    sleep 1
                done
                echo "Redis cluster stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

 $CLIEXEC -h $HOSTIP -p $REDISPORT1 -a 123456 shutdown中的123456根据具体设置密码

11.文件授权:执行权限

chmod a+x /etc/init.d/redis_cluster

12.注册为系统服务

chkconfig --add redis_cluster

13.配置为开机自启动

chkconfig redis_cluster on

14.测试启动命令

启动:

service redis_cluster start

关闭:

service redis_cluster stop

15.创建集群

使用命令 /usr/local/redis-5.0.8/src/redis-cli --cluster create 服务器IP:port1 服务器IP:port1 服务器IP:port1 服务器IP:port1 服务器IP:port1 服务器IP:port1 --cluster-replicas 1

/usr/local/redis-5.0.8/src/redis-cli --cluster create --cluster-replicas 1 10.0.0.8:7001 10.0.0.8:7002 10.0.0.8:7003 10.0.0.8:7004 10.0.0.8:7005 10.0.0.8:7006

这里我采用的是单服务器的伪集群模式,是私网ip

16.查看集群状态

/usr/local/redis-5.0.8/src/redis-cli -a 123456 -p 7001

 

 注:如果外网链接不上,注意服务器是否开启了7001-7006和17001-17006端口,

参考自:Linux开机启动Redis集群脚本_51CTO博客_linux redis 启动命令

Linux搭建Redis集群(简单易操作)_linux搭建简单redis集群_长~相~伴的博客-优快云博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值