Redis主从哨兵模式

IP

服务

用途

10.0.10.45

redis

sentinel

zookeeper

uniquecode

主redis

10.0.10.43

redis

sentinel

zookeeper

uniquecode

从reids-1

10.0.10.44

redis

sentinel

zookeeper

uniquecode

从redis-2

redis主从哨兵分为两部分,redis主从和redis哨兵

redis主从主要负责提供redis服务

redis哨兵主要用来监控redis服务状态,并进行切换主从

当3个哨兵中有2个检测到任意一个redis服务故障后就从另外2个redis服务中选举出1个作为主服务

Redis主从哨兵模式_第1张图片

 

,安装依赖包

为了避免编译报错,先安装依赖包

yum -y install gcc gcc-c++ libstdc++-devel

1,上传并解压redis程序包

cd /data/tool

tar zxvf Linux-redis-4.0.11.tar.gz  ##解压redis安装包

mv redis-4.0.11 /data/FinanceBox/  ##将redis解压的包移动到Finance下面

2,编译安装

cd /data/FinanceBox/redis-4.0.11

编译

make MALLOC=libc

如上图显示编译成功

Redis主从哨兵模式_第2张图片

 

3,创建运行目录调整配置

创建运行目录

mkdir -p /data/FinanceBox/redis-4.0.11/etc
mkdir -p /data/FinanceBox/redis-4.0.11/bin

复制配置文件

cp /data/FinanceBox/redis-4.0.11/redis.conf /data/FinanceBox/redis-4.0.11/etc/

cp /data/FinanceBox/redis-4.0.11/sentinel.conf /data/FinanceBox/redis-4.0.11/etc/

复制运行文件

cd /data/FinanceBox/redis-4.0.11/src

cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /data/FinanceBox/redis-4.0.11/bin

修改配置文件,配置文件分为redis服务文件和哨兵服务文件

先修改redis服务文件

vim /data/FinanceBox/redis-4.0.11/etc/redis.conf

3台机器的redis.conf通用配置,主要关注点有以下几个:

修改前

修改后

bind 127.0.0.1

bind 0.0.0.0

port 6379

port 8300

pidfile /var/run/redis_6379.pid

pidfile /data/FinanceBox/redis-4.0.11/etc/redis_8300.pid

logfile ""

logfile /data/FinanceBox/redis-4.0.11/etc/redis.log

dir ./

dir /data/FinanceBox/redis-4.0.11/etc

# masterauth

masterauth fingard

# requirepass foobared

requirepass fingard

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit slave 0 0 0

2台从redis.conf文件增加以下配置

slaveof 10.0.10.45 8300  ##主redis服务的ip和端口

4,启动redis服务,测试主从同步

启动顺序,先主后从

关闭顺序,先从后主

##进入服务启动目录

cd /data/FinanceBox/redis-4.0.11/bin

##后台运行启动命令

nohup ./redis-server /data/FinanceBox/redis-4.0.11/etc/redis.conf &

登陆redis测试数据同步

在主redis服务上操作

cd /data/FinanceBox/redis-4.0.11/bin

./redis-cli -h 127.0.0.1 -p 8300

auth fingard   ##fingard是redis访问密码

set sic 123456   ##设置一个key和value

get sic   ##获取key为sic的value

Redis主从哨兵模式_第3张图片

 

在2个从redis上登陆并获取下key看看

cd /data/FinanceBox/redis-4.0.11/bin

./redis-cli -h 127.0.0.1 -p 8300

auth fingard

get sic

Redis主从哨兵模式_第4张图片

 Redis主从哨兵模式_第5张图片

两台机器均能获取到key,说明同步成功

状态查看

在主redis上执行

info replication  ##获取主从信息

从下图可以看到,此台机器的redis服务角色是  master,两个slave的ip如下

Redis主从哨兵模式_第6张图片

5,哨兵配置

vim /data/FinanceBox/redis-4.0.11/etc/sentinel.conf

3台机器的sentinel.conf通用配置,主要关注点有以下几个:

修改前

修改后

# bind 127.0.0.1 192.168.1.1

bind 0.0.0.0

# protected-mode no

protected-mode no

port 26379

port 28300

dir /tmp

dir /data/FinanceBox/redis-4.0.11/etc

新增

logfile /data/FinanceBox/redis-4.0.11/etc/sentinel.log

sentinel monitor mymaster 127.0.0.1 6379 2

sentinel monitor mymaster 10.0.10.45 8300 2

# sentinel auth-pass

sentinel auth-pass mymaster fingard

sentinel down-after-milliseconds mymaster 30000

sentinel down-after-milliseconds mymaster 3000

新增

daemonize no

6,哨兵启动

启动顺序,先主后从

关闭顺序,先从后主

cd /data/FinanceBox/redis-4.0.11/bin
nohup ./redis-sentinel /data/FinanceBox/redis-4.0.11/etc/sentinel.conf >setinel.out &

7,查看哨兵状态

3台机器上执行操作显示结果是一样的

cd /data/FinanceBox/redis-4.0.11/bin

./redis-cli  -p 28300 info sentinel

Redis主从哨兵模式_第7张图片

 

你可能感兴趣的:(java,redis,jvm)