Redis主从模式哨兵配置实战

环境:Centos8+Redis7.02
Centos 8 ip:192.168.137.22

配置redis主从

新建文件夹redis,获取安装包

wget http://download.redis.io/releases/redis-7.0.2.tar.gz

解压安装包

tar -zxvf redis-7.0.2.tar.gz
cd redis-7.0.2

编译并安装

make
cd src
make install

配置主redis

[root@server1 redis-7.0.2] vim redis.conf
# bind 127.0.0.1     // 注释掉这一行
protected-mode no    // 关闭保护模式
port 6379            // redis 端口

配置从redis

[root@server1 redis-7.0.2]# cd ~
[root@server1 ~]# mkdir config
[root@server1 ~]# cp ~/redis-7.0.2/redis.conf config/ 6380.conf
[root@server1 ~]# cp ~/redis-7.0.2/redis.conf config/6381.conf
[root@server1 redis-7.0.2] vim 6380.conf
[root@server1 redis-7.0.2] vim 6381.conf

6380.conf配置修改
# bind 127.0.0.1     // 注释掉这一行
protected-mode no    // 关闭保护模式
port 6380            // redis 端口
replicaof 192.168.137.22 6379     // 配置 master 的IP和端口
6381.conf配置修改
# bind 127.0.0.1     // 注释掉这一行
protected-mode no    // 关闭保护模式
port 6381            // redis 端口
replicaof 192.168.137.22 6379     // 配置 master 的IP和端口

验证配置是否成功

//启动主服务端
redis-server ~/redis7.0.2/redis.conf 
//启动从服务端
redis-server ~/config/redis-6380.conf 
redis-server ~/config/redis-6381.conf 
//从主客户端登录
redis-cli -p 6379
//从从客户端登录
redis-cli -p 6380
redis-cli -p 6381
验证结果
主客户端

在这里插入图片描述

从客户端

set前
在这里插入图片描述
set后
在这里插入图片描述

查看配置 info replication
127.0.0.1:6379> info replication
# Replication
role:master                                                                                                   //角色为master
connected_slaves:2                                                                                     //两个从
slave0:ip=127.0.0.1,port=6380,state=online,offset=432280,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=432280,lag=0
master_failover_state:no-failover
master_replid:e0fdb9166c3b0e0c0a96b943ea8a6953883f3b43
master_replid2:04e7a667558cbc8fb9823d08bf73a91cfc27a4ce
master_repl_offset:432280
second_repl_offset:432199
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:432199
repl_backlog_histlen:82

配置哨兵

哨兵没有主从概念,每一个哨兵都是一样的,所以配置三份除了端口信息其余都一样的就可以

[root@server1 redis-7.0.2] vim /redis-7.0.2/sentinel.conf 

port 26379      // 哨兵端口
daemonize yes   // 开启守护进程
sentinel monitor mymaster 192.168.137.22 6379 2    // 监控 master ip 端口
log 6379.log   //log文件名

sentinel-6380.conf

port 26380     // 哨兵端口

sentinel-6381.conf

port 26381     // 哨兵端口

log的话 所有的log在一个log就放同一个log文件,想分开记录就放多个

然后关闭并重启所有的redis-server(只展示6379的指令)

redis-cli -p 6379 shutdown //关闭指令
redis-server ~/redis-7.0.2/redis.conf //开启
ps -aux|grep redis
kill                         //杀掉主redis服务端
然后进入6380.conf 
127.0.0.1:6380>info replication

发现主服务器变了,变成了6381端口对应的redis服务器(这个谁变由raft算法决定)

查看结果

然后进log查看

vim sentinel_26379.log
//投票
1075284:X 10 Oct 2022 11:30:02.540 # +vote-for-leader 616d66ddb5fde8a2a0314e67a1c733dba217ac71 1
1075284:X 10 Oct 2022 11:30:02.540 * +sentinel-address-switch master mymaster 192.168.137.22 6379 ip 192.168.137.22 port 26381 for 616d66ddb5fde8a2a0314e67a1c733dba217ac71
1075284:X 10 Oct 2022 11:30:02.544 * Sentinel new configuration saved on disk
1075284:X 10 Oct 2022 11:30:02.631 * +sentinel-address-switch master mymaster 192.168.137.22 6379 ip 192.168.137.22 port 26380 for 616d66ddb5fde8a2a0314e67a1c733dba217ac71
1075284:X 10 Oct 2022 11:30:02.637 * Sentinel new configuration saved on disk
1075284:X 10 Oct 2022 11:30:02.926 * Sentinel new configuration saved on disk
1075284:X 10 Oct 2022 11:30:02.926 # +new-epoch 2
//没选举出来重新投票
1075284:X 10 Oct 2022 11:30:02.931 * Sentinel new configuration saved on disk
1075284:X 10 Oct 2022 11:30:02.931 # +vote-for-leader 616d66ddb5fde8a2a0314e67a1c733dba217ac71 2
1075284:X 10 Oct 2022 11:30:03.904 # +config-update-from sentinel 616d66ddb5fde8a2a0314e67a1c733dba217ac71 192.168.137.22 26380 @ mymaster 192.168.137.22 6379
//投出来以后  6381变成了新的主
1075284:X 10 Oct 2022 11:30:03.904 # +switch-master mymaster 192.168.137.22 6379 192.168.137.22 6381
1075284:X 10 Oct 2022 11:30:03.904 * +slave slave 192.168.137.22:6380 192.168.137.22 6380 @ mymaster 192.168.137.22 6381

截图如下
在这里插入图片描述
到这,我们的主从模式+哨兵模式的redis就搭建成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值