Redis哨兵模式搭建

一、安装redis
下载redis安装包:redis-3.2.4.tar.gz
这里写图片描述
解压redis压缩包
这里写图片描述
解压后目录
这里写图片描述
进入redis-3.2.4
这里写图片描述
安装redis
这里写图片描述
安装完成后,输入redis-server -v,出现以下结果,即为安装成功
这里写图片描述
二、搭建redis集群
创建文件夹redis-sentinel,mkdir redis-sentinel
这里写图片描述
复制redis配置文件redis.conf到redis-sentinel文件夹中
这里写图片描述
进入redis-sentinel文件夹中
这里写图片描述
修改redis.conf文件名为6379.conf
这里写图片描述
使用vi命令修改6379.conf文件:
bind后修改为你虚拟机的ip地址(使用ifconfig命令查看虚拟机ip)
这里写图片描述
daemonize改为yes
这里写图片描述
端口port为6379
这里写图片描述
修改完保存
再复制两份.conf文件分别为6380.conf和6381.conf
这里写图片描述
修改6380.conf文件:6380.conf里的port改为6380
这里写图片描述
pidfile文件改为6380.pid
这里写图片描述
最后加一条slaveof 192.168.133.99 6379,ip为虚拟机ip,端口为你要设为主的redis端口,这里让6379为主(master),6380和6381为从(slave)
这里写图片描述
6381.conf修改和6380的修改一样,只是port端口号和pidfile路径改为6381就可以了,这里不再赘述。
修改完成以后,启动redis服务:
redis-server 6379.conf
redis-server 6380.conf
redis-server 6381.conf
查看进程,如下信息,即为安装成功
这里写图片描述
三、配置哨兵
回到上层目录,复制sentinel.conf到redis-sentinel文件夹中
这里写图片描述
进入redis-sentinel文件夹,修改sentinel.conf,添加以下两条配置,bind ip为虚拟机ip:
daemonize yes
bind 192.168.133.99
这里写图片描述
打开protected-mode,设置为yes
这里写图片描述
修改sentinel monitor mymaster后ip为虚拟机ip,端口为主的端口
这里写图片描述
(根据个人情况修改,可改可不改)修改sentinel down-after-milliseconds为3秒,默认为30秒,指的是主redis挂掉以后,经过多少秒哨兵会选举一个主redis(master)
这里写图片描述
启动哨兵redis-sentinel sentinel.conf
这里写图片描述
启动后查看进程,ps -ef | grep redis,显示以下结果,即为启动成功
这里写图片描述
四、验证
使用以下命令进入6379、6380、6381的客户端:
redis-cli -h 192.168.133.99 -p 6379
这里写图片描述
redis-cli -h 192.168.133.99 -p 6380
这里写图片描述
redis-cli -h 192.168.133.99 -p 6381
这里写图片描述
在6379客户端输入info,回车,查看该redis的信息
这里写图片描述
6379客户端信息如下,role:master,可以看到角色为master,下面有两个slave,分别为6380和6381
这里写图片描述
在6380客户端输入info,回车,可以看到role为slave,主master为6379端口,6381客户端和6380一样,不再赘述
这里写图片描述
在6379客户端输入set name zhangsan
这里写图片描述
去6380和6381客户端查看
这里写图片描述
这里写图片描述
可以看到都能得到数据。
但是如果在6380和6381客户端往redis里写数据的话,会提示你slave只能读数据,不能写数据。master可以读、写数据,slave只能读数据。
这里写图片描述
现在6379为master,把6379进程杀掉
这里写图片描述
再去6381客户端用info查看信息,可以发现此时6381已经被推举为master了,slave为6380
这里写图片描述
6380客户端信息,可以看到role为slave,master为6381
这里写图片描述
重新打开redis服务,进入redis客户端
打开哨兵客户端,redis-cli -h 192.168.133.99 -p 26379
这里写图片描述
sentinel master mymaster,查看master的信息
这里写图片描述
sentinel slaves mymaster,查看slaves的信息,可以看到有两个slave
这里写图片描述
这里写图片描述
sentinel get-master-addr-by-name mymaster,可以获取当前master的ip和端口
这里写图片描述
info sentinel,查看哨兵信息
这里写图片描述
另外,可以写个redis服务启动和停止的脚本,分别为start.sh和stop.sh
这里写图片描述
赋权限
这里写图片描述
使用start.sh和stop.sh
这里写图片描述

start.sh

#!/bin/sh
redis-server 6379.conf
redis-server 6380.conf
redis-server 6381.conf
redis-sentinel sentinel.conf
echo "redis start ok!"

stop.sh

#!/bin/sh
ps -ef | grep redis | grep -v grep | kill -9 `awk '{print $2}'` 
echo "redis stop ok!"
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值