暂无图片
暂无图片
5
暂无图片
暂无图片
1
暂无图片

Redis集群(哨兵模式)搭建

原创 肖杰 2020-10-27
4534

三台服务器,搭建开发,测试,镜像三套redis集群,通过端口区分

服务器IP:

master 192.168.11.152
slave 192.168.11.153
slave 192.168.11.154
复制

1,配置hosts

vi /etc/hosts
192.168.11.152 redis1
192.168.11.153 redis2
192.168.11.154 redis3
复制

2,安装rpm包

yum -y install gcc
复制

3,redis安装

三个节点都安装

安装文件: redis-5.0.8.tar.gz
解压:tar zxvf  redis-5.0.8.tar.gz
重命名文件夹:mv redis-5.0.8 redis
cd redis
make MALLOC=libc
复制

4,修改配置文件

通不过不同的端口区别不同的环境
开发:7001
测试:8001
镜像:9001

分别创建三个redis配置文件:
redis7001.conf
redis7001.conf
redis7001.conf

配置文件内容:

开发master节点:

bind 0.0.0.0                         --允许所有IP连接
protected-mode yes 
port 7001                            --端口号
timeout 300                          --连接超时
tcp-keepalive 300
daemonize yes                        --后台运行
supervised no
pidfile "/var/run/redis_7001.pid"   --指定pid文件,需要修改run目录增加写权限
loglevel notice                      --日志等级,默认notice
logfile "/home/redis/redis/redis_7001.log"  --指定log文件
dir "/home/redis/redis"              --指定工作目录
replica-serve-stale-data yes 
replica-read-only yes                --指定slave只读
requirepass "redis"                  --指定登录密码
masterauth "redis"                   --指定master节点登录密码
appendonly no
复制

测试、镜像修改相关端口即可。

slave节点:
同master节点参数,新增一个参数:

replicaof 192.168.11.152 7001        --指定master的ip,端口信息
复制

测试、镜像修改相关端口即可。

5,启动redis

master(152):
src/redis-server redis7001.conf
src/redis-server redis8001.conf
src/redis-server redis9001.conf

slave(153,154):
src/redis-server redis7001.conf
src/redis-server redis8001.conf
src/redis-server redis9001.conf
复制

6,检查集群状态

[redis@redis2 redis]$ src/redis-cli -h 192.168.11.152 -p 7001 -a redis info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.11.153,port=7001,state=online,offset=479419,lag=0
slave1:ip=192.168.11.154,port=7001,state=online,offset=479419,lag=0
master_replid:bb8395669255fad559847586ec4ea2b6858dcbc3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:479419
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:479419
复制

7,配置哨兵sentinel

配置文件:sentinel.conf
daemonize yes                            --后台运行
bind 192.168.11.165                      --本机IP
port 26379                               --sentinel端口号
pidfile "/var/run/redis-sentinel.pid"    --指定pid文件
logfile "/home/redis/redis/sentinel.log" --指定log文件
dir "/home/redis/redis"                  --指定工作目录
sentinel deny-scripts-reconfig yes
sentinel monitor devmaster 192.168.11.152 7001 2
sentinel monitor testmaster 192.168.11.152 8001 2
sentinel monitor mirrormaster 192.168.11.152 9001 2
sentinel down-after-milliseconds devmaster 10000
sentinel down-after-milliseconds testmaster 10000
sentinel down-after-milliseconds mirrormaster 10000
sentinel failover-timeout devmaster 15000
sentinel failover-timeout testmaster 15000
sentinel failover-timeout mirrormaster 15000
sentinel auth-pass devmaster redis
sentinel auth-pass testmaster redis
sentinel auth-pass mirrormaster redis
复制

三个节点都配置,bind参数修改为本机IP即可。

8,启动sentinel(152,153,154)

src/redis-sentinel sentinel.conf
复制

9,登录任意节点查看sentinel状态

[redis@redis2 redis]$ src/redis-cli -h 192.168.11.153 -p 26379 info sentinel
# Sentinel
sentinel_masters:3
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=testmaster,status=ok,address=192.168.11.152:8001,slaves=2,sentinels=3
master1:name=mirrormaster,status=ok,address=192.168.11.152:9001,slaves=2,sentinels=3
master2:name=devmaster,status=ok,address=192.168.11.152:7001,slaves=2,sentinels=3
复制

集群配置完成。

附:
配置redis以服务模式启动:

cp  /home/redis/redis/utils/redis_init_script /etc/init.d/redis

vi /etc/init.d/redis

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

REDISPORT=6379
EXEC=/home/redis/redis/bin/redis-server
CLIEXEC=/home/redis/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid    ##需要配置run目录权限
CONF="/home/redis/redis/redis.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT -a redis shutdown        ##如果启用了密码验证则需要-a指定密码,否则一直Waiting for Redis to shutdown ...
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac
复制

配置完成后则可用 service redis start/stop 启停

最后修改时间:2020-10-28 09:46:48
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

11 0
暂无图片
1年前
评论
暂无图片 0
👍
1年前
暂无图片 点赞
评论