Redis哨兵服务(高可用服务)

一、概念:

  • 什么是哨兵服务:
    监视主从复制结构中主服务器,发现主服务器无法连接后,会把对应的从升级为主数据库服务器,继续监视新的主数据库服务器,坏掉的主数据库服务器恢复后,会自动做当前主服务器的从主机。
  • 哨兵服务+redis主从服务(一主一从、一主多从、主从从):
    能够实现redis服务高可用和数据的自动备份,但远比Redis集群的资金成本和运维成本要低。

二、环境准备:

主机名 IP地址 端口 角色
Host54 192.168.88.54 6379 主服务器
Host55 192.168.88.55 6379 从服务器
Host57 192.168.88.57 6379 管理(哨兵)
服务器

三、实现步骤:

  1. 配置Redis主从结构
  2. 配置哨兵服务
  3. 测试配置

四、实操:

第一步:配置Redis主从结构:

  • 配置主服务器host54
[root@host54 ~]# yum -y install gcc 
[root@host54 ~]# tar -xf redis-4.0.8.tar.gz 
[root@host54 ~]# cd redis-4.0.8/
[root@host54 ~]# make && make install
[root@host54 ~]# ./utils/install_server.sh  遇到提示就回车
[root@host54 ~]# /etc/init.d/redis_6379  stop
[root@host54 ~]# vim /etc/redis/6379.conf 
bind 192.168.88.54 
[root@host54 ~]# /etc/init.d/redis_6379  start
  • 配置从服务器host55
[root@host55 ~]# yum -y install gcc 
[root@host55 ~]# tar -xf redis-4.0.8.tar.gz 
[root@host55 ~]# cd redis-4.0.8/
[root@host55 ~]# make && make install
[root@host55 ~]# ./utils/install_server.sh  遇到提示就回车
[root@host55 ~]# /etc/init.d/redis_6379  stop
[root@host55 ~]# vim /etc/redis/6379.conf 
bind 192.168.88.55 
[root@host55 ~]# /etc/init.d/redis_6379  start
[root@host55 ~]# redis-cli  -h 192.168.88.55
192.168.88.55:6379> slaveof  192.168.88.54 6379
OK
192.168.88.55:6379> config rewrite
OK

第二步:配置哨兵服务(192.168.88.57):

  • 安装源码软件redis (无需做初始化配置,如果做了初始化把redis服务停止即可)
[root@redis57 ~ ]# yum -y install gcc 
[root@redis57 ~ ]# tar -zxf redis-4.0.8.tar.gz
[root@redis57 redis]# cd redis-4.0.8/
[root@redis1 redis-4.0.8]# make
[root@redis1 redis-4.0.8]# make install         
  • 创建并编辑主配置文件
# 源码包里有哨兵服务配置文件的模板sentinel.conf
# sentinel.conf主要是定义哨兵服务的运行参数
[root@host57 ~]# vim  /etc/sentinel.conf
bind  192.168.88.57 # 指定哨兵服务的ip地址
port  26379 # 哨兵服务器的端口
sentinel monitor redis_server 192.168.88.54 6379 1
# sentinel monitor:指的是哨兵服务器监视各项参数
# redis_server:监视的主服务器名称(可以随便起,一般是redis_server)
# 192.168.88.54 6379:监视的主服务器的ip地址和端口号
# 1:指的是哨兵监视服务器台数(有几台就写几)

# 如果主服务器有连接密码 还要指定主服务器密码 (写法如下)  
# # sentinel auth-pass redis_server 123456 
  • 启动哨兵服务 (会占用当前终端显示启动信息)
[root@mgm57 ~]# nohup redis-sentinel  /etc/sentinel.conf  &
[root@mgm57 ~]# nohup: 忽略输入并把输出追加到"nohup.out"   回车即可
# 查看端口
[root@mgm57 ~]# netstat –utnlp  | grep 26379

第三步:测试配置:

  • 当主服务器宕机,由从来接替主服务器,能够接替视为成功
  • 停止主服务器54的redis服务
[root@host54 ~]# redis-cli  -h 192.168.88.54  shutdown
  • 在服务器55主机,查看复制信息, 角色为 master
[root@host55 ~]# redis-cli -h 192.168.88.55  
192.168.88.55:6379> info replication   
# Replication
role:master
connected_slaves:0
192.168.88.55:6379> mset  v1  101  v2  102  存储数据
OK
  • 查看哨兵服务主配置文件 监视的主服务器 自动修改为 从服务器的ip
[root@host57 ~]# cat /etc/sentinel.conf 
.....
sentinel monitor redis_server 192.168.88.55 6379 1
.....
sentinel known-slave redis_server 192.168.88.54 6379
  • 把宕机54主机的redis服务启动
[root@host54 ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@host54 ~]# redis-cli  -h 192.168.88.54 
192.168.88.54:6379> info replication
# Replication
role:slave
master_host:192.168.88.55
master_port:6379
master_link_status:up 
  • 在host55主机查看复制信息
  • 54自动做当前主服务器55的从主机
192.168.88.55:6379> info replication
# Replication
role:master
connected_slaves:1  有1个从服务器
slave0:ip=192.168.88.55,port=6379,state=online,offset=231667,lag=0

你可能感兴趣的:(Redis哨兵服务(高可用服务))