Redis-哨兵模式集群搭建

一、环境信息

1、版本要求

redis2.6版本开始提供,稳定版本为2.8及之后。

2、服务节点个数要求

至少需部署3个且奇数个哨兵节点;

3、特性

哨兵进程作用:监控、提醒、自动故障转移,配置提醒者

优点:基于主从模式的升级,解决主从复制的缺陷

缺点:在线扩容困难、配置繁琐

4、投产部署说明

本文档是在一台服务器上启动了6个实例进行演示。实际投产部署时,每个节点应该对应一台服务器,每个节点配置为自己主机的IP信息即可。

5、本文当部署信息

  1. - [ ] - | | | redis哨兵模式部署 | |
    |
    | :-----: | :-------: | :---------------: | :-------: | :-------: |
    | 系统 | 角色 | IP | redis端口 | Redis版本 |
    | CentOS7 | Master | 192.168.100.135 | 7000 | 6.0.20 |
    | CentOS7 | Slave1 | 192.168.100.135 | 7001 | 6.0.20 |
    | CentOS7 | Slave2 | 192.168.100.135 | 7002 | 6.0.20 |
    | CentOS7 | Sentinel1 | 192.168.100.135 | 26379 | 6.0.20 |
    | CentOS7 | Sentinel2 | 192.168.100.135 | 26380 | 6.0.20 |
    | CentOS7 | Sentinel3 | 192.168.100.135 | 26381 | 6.0.20 |
    请添加图片描述

注:默认使用root权限账户进行安装部署

二、Redis哨兵模式部署

请添加图片描述

(1)创建配置文件目录

  • mkdir /usr/local/redis-sentinel # 自行指定路径
  • mkdir /usr/local/redis-sentinel/data # 自行指定路径
  • mkdir /usr/local/redis-sentinel/run # 自行指定路径

(2)配置主节点

  • vim /usr/local/redis-sentinel/redis-7000.conf #新建配置文件

添加信息如下

#928注释
port 7000
daemonize yes
pidfile /usr/local/redis-sentinel/run/redis-7000.pid
logfile /usr/local/redis-sentinel/log/redis-7000.log
dir /usr/local/redis-sentinel/data

(3)配置从节点

本文档主从节点在同一服务器,实际生成部署时需要替换为主节点IP和端口

  • vim /usr/local/redis-sentinel/redis-7001.conf #新建配置文件
#928注释
port 7001
daemonize yes
pidfile /usr/local/redis-sentinel/run/redis-7001.pid
logfile /usr/local/redis-sentinel/log/redis-7001.log
dir /usr/local/redis-sentinel/data
slaveof 127.0.0.1 7000
  • vim /usr/local/redis-sentinel/redis-7002.conf #新建配置文件

    
    #928注释
    port 7002
    daemonize yes
    pidfile /usr/local/redis-sentinel/run/redis-7002.pid
    logfile /usr/local/redis-sentinel/log/redis-7002.log
    dir /usr/local/redis-sentinel/data
    slaveof 127.0.0.1 7000
    
    
    

(4)启动主、从节点

  • 如果在同一服务器中,需要将安装配置好的redis配置文件复制一份到/usr/local/redis-sentinel/下
/usr/local/redis-sentinel/下  新建

bin
bin下存储的文件
redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-sentinel,redis-cli

log

run

conf
将redis的配置文件放到conf文件夹下
redis-7000.conf
redis-7001.conf
redis-7002.conf

后三个配置文件为后边配置,此处表面都在该目录下
redis-sentinel-26379.conf
redis-sentinel-26380.conf
redis-sentinel-26381.conf

找到/usr/local/redis-sentinel/bin

因为该目录下有redis-server

开始启动主从节点

redis-server /usr/local/redis-sentinel/redis-7000.conf

redis-server /usr/local/redis-sentinel/redis-7001.conf

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


ps -ef | grep redis 查看redis节点进程信息
下图前三个为启动的redis进程,后三个还没有启动

请添加图片描述

(5)查看主节点配置信息

分别连接主从节点客户端,在客户端使用info replication 命令查看角色信息

/usr/local/redis-sentinel/bin

在该目录下有redis-cli,执行如下命令

1-主节点信息
./redis-cli -p 7000

ping

info replication

退出用quit

查看主机节点信息如下:

请添加图片描述

2-从节点Slave1信息
./redis-cli -p 7001

ping

info replication

退出用quit

Slave1从节点信息如下

请添加图片描述

3-从节点Slave2信息
./redis-cli -p 7002

ping

info replication

退出用quit

Slave2从节点信息如下

请添加图片描述

(6)配置哨兵

注意:

#拷贝Sentinel配置文件


此处会用到redis-sentinel

将redis-sentinel文件复制到新建的配置文件/usr/local/redis-sentinel/conf/  下
如果没有找到该文件,则去/usr/local/redis/src下找,前边已经将该文件放到/usr/local/redis/bin下


cp /usr/local/redis/bin/redis-sentinel.conf /usr/local/redis-sentinel/conf/  

将redis-sentinel文件通过以下命令进行拷贝

cd /usr/local/redis-sentinel/conf
(也就是sentinel.conf存在的目录)

#拷贝文件并去除空行和注释
cat sentinel.conf | grep -v “#” | grep -v “^$” > redis-sentinel-26379.conf

cat sentinel.conf | grep -v “#” | grep -v “^$” > redis-sentinel-26380.conf

cat sentinel.conf | grep -v “#” | grep -v “^$” > redis-sentinel-26381.conf

执行完以上三条命令后,会出现相应的的xxx-xxx-xxx.conf文件
然后进行对其编辑
vim redis-sentinel-26379.conf,#修改后配置信息如下
里边的信息与下图不一致,需要重新看这几个位置,自己配置,路径是文件的路径
1、redis-sentinel-26379.conf

请添加图片描述

2、redis-sentinel-26380.conf
vim redis-sentinel-26379.conf,#修改后配置信息如下
里边的信息与下图不一致,需要重新看这几个位置,自己配置,路径是文件的路径

请添加图片描述

3、redis-sentinel-26381.conf
vim redis-sentinel-26379.conf,#修改后配置信息如下
里边的信息与下图不一致,需要重新看这几个位置,自己配置,路径是文件的路径

请添加图片描述

(7)启动哨兵

注意:

cd /usr/local/redis-sentinel/bin
因为此目录下有之前复制过来的 redis-sentinel文件
若没有,则去安装reids的目录下的src下寻找,如果没有此处应该从
/usr/local/redis/src  下寻找redis-sentinel文件
redis-sentinel redis-sentinel-26379.conf

redis-sentinel redis-sentinel-26380.conf

redis-sentinel redis-sentinel-26381.conf

# 查看哨兵进程信息
ps -ef | grep redis-sentinel  

如下图

请添加图片描述

(8)查看哨兵模式集群信息

# 查看哨兵模式各节点进程信息
ps -ef | grep redis

如下图

请添加图片描述

cd /usr/local/redis-sentinel/bin

 #使用redis客户端连接到Sentinel
 ping
./redis-cli -p 26379
如下图

连接后使用ping命令查看redis主从服务是否正常;返回PONG正常

请添加图片描述

使用
info sentinel 查看哨兵配置信息
可以看到本集群已搭建好:3各sentinel、一个master节点、两个slave节点

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值