概述

在部署redis 的时候,如果redis宕机,缓存将不可用,redis提供了哨兵模式保证redis实现高可用。

即一台主机两台从机,三台哨兵主机,如果主实例宕机,哨兵将将一台从机升级为主机。实现高可用。

配置方法

1.IP地址配置如下

主 127.0.0.1 6001

从 127.0.0.1 6002

从 127.0.0.1 6003

哨兵

127.0.0.1 16001

127.0.0.1 16002

127.0.0.1 16002

2.修改配置

将 redis.con 拷贝两份 redis1.conf redis2.conf

修改配置如下:

编辑 redis.conf

bind 192.168.1.88 127.0.0.1

protected-mode no

daemonize yes

port 6001

pidfile "/var/run/redis_6001.pid"

编辑 redis1.conf

bind 192.168.1.88 127.0.0.1

protected-mode no

daemonize yes

port 6002

pidfile "/var/run/redis_6002.pid"

slaveof 127.0.0.1 6001

编辑 redis2.conf

bind 192.168.1.88 127.0.0.1

protected-mode no

port 6003

daemonize yes

pidfile "/var/run/redis_6003.pid"

slaveof 127.0.0.1 6001

编辑 哨兵文件

将哨兵文件拷贝两份

sentinel.conf sentinel1.conf sentinel2.conf

编辑 sentinel.conf

port

daemonize yes

sentinel monitor mymaster 127.0.0.1 6001 2

编辑 sentinel1.conf

port

daemonize yes

sentinel monitor mymaster 127.0.0.1 6001 2

编辑 sentinel2.conf

port

daemonize yes

sentinel monitor mymaster 127.0.0.1 6001 2

配置完成

注意

这里如果需要使用哨兵模式连接的话,注意不能使用 127.0.0.1 需要使用对外的IP地址。

3.启动 redis

./bin/redis-server etc/redis.conf

./bin/redis-server etc/redis1.conf

./bin/redis-server etc/redis2.conf

启动哨兵

./bin/redis-sentinel ./etc/sentinel.conf

./bin/redis-sentinel ./etc/sentinel1.conf

./bin/redis-sentinel ./etc/sentinel2.conf

验证

新开一个命令行窗口进入redis的src目录,用redis-cli工具登录其中一个哨兵

./bin/redis-cli -p 16001

连接成功后运行如下命令

sentinel master mymaster

我们可以看到主机端口为 6001

我们手工关闭 6001的实例。

可以看到 6001 断开了。

可以看到6002 变为主机了。可以看到 6002 的配置文件 slaveof 127.0.0.1 6001 没有了。

测试设置数据:

连接到 6002

./bin/redis-cli -p 6002

set name redis

连接到6001

get name

可以获取到数据 redis

我们连接到6003 ,设置数据,我们可以从机是不能设置数据的。

sentinel 作用

A、Master 状态监测

B、如果Master 异常,则会进行Master-slave 转换,将其中一个Slave作为Master,将之前的Master作为Slave

C、Master-Slave切换后,redis.conf、redis1.conf和redis2.conf,sentinel.conf 的内容都会发生改变,sentinel.conf的监控目标会随之调换

sentinel monitor mymaster 127.0.0.1 6002 2

redis 的一主二从三哨兵模式的更多相关文章

  1. docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)

    本篇基于centos7服务器进行部署开发 一.拉取redis镜像,使用如下命令 docker pull redis 1.查看镜像是否拉取成功,使用如下命令 docker images 显示如下则证明拉 ...

  2. redis环境搭建及一主二从三哨兵模式配置

    一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...

  3. 【运维技术】redis(一主两从三哨兵模式搭建)记录

    redis(一主两从三哨兵模式搭建)记录 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也包含我自己,能够节省对应的时间. 软件架构: 生产环境使用三台 ...

  4. redis(一主两从三哨兵模式搭建)记录

    转自:http://www.cnblogs.com/fly-piglet/p/9836314.html 目的: 让看看这篇文章的的人能够知道:软件架构.软件的安装.配置.基本运维的操作.高可用测试.也 ...

  5. Redis 搭建一主二从三哨兵高可用集群

    1.单个redis服务搭建请参考:redis服务搭建 2.在/usr/local下创建目录redis-cluster,并在redis-cluster下创建 6379.6380.6381目录以及data ...

  6. redis 一主二从三哨兵

    总体部署 一主二从三哨兵 ip地址分配分别为 主 127.0.0.1:6379 从 127.0.0.1:6389 从 127.0.0.1:6399 哨兵 127.0.0.1:26379 哨兵 127. ...

  7. redis一主二从三哨兵

    redis做集群的时候有很多种配置方法,一主二从三哨兵这种模式是官网推荐的.,写配置文件链接的时候,写的是哨兵地址,不是IP,用户名,密码之类的. 一主二从很好理解,一个主的redis,实时备份到两个 ...

  8. springboot 集成Redis一主二从三哨兵

    1.Centos7 Redis一主二从三哨兵配置 Redis一主二从三哨兵环境搭建 2.接入过程 与集成redis单机不同的是jedis相关的配置做了修改,JedisPool换成了JedisSenti ...

  9. docker compose搭建redis7.0.4高可用一主二从三哨兵集群并整合SpringBoot【图文完整版】

    一.前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群. redis有两种高可用的方案: High availability with Re ...

随机推荐

  1. SpringCloud如何创建一个服务提供者provider

    SpringCloud如何创建一个服务提供者provider 创建子moudle provider-demo 创建一个子module,项目名叫provider-demo. 填充springboot和s ...

  2. sql查询 !='' 和 is not null的区别

    select * from table where a is not null 会把有内容的和内容为空的都查出来而select * from table where a != '' 只会把有内容的查出 ...

  3. ALV界面显示

    PERFORM ADD.   IS_LAYOUT_LVC-CWIDTH_OPT = 'X'.   IS_LAYOUT_LVC-SEL_MODE = 'A'. CALL FUNCTION 'REUSE_ ...

  4. Extjs如何添加多个Vtype

    http://devjs.eu/en/multiple-validation-multi-vtype-for-textfield-in-ext-js-4/

  5. VSS源代码管理器运行代码分析工具的命令

    当你发现代码库总是报需要联系管理员运行代码分析工具时,你可以使用命令分析代码库代码解决: To fix the database problems, you can restart the analy ...

  6. python学习笔记-Day4(1)

    迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优点是 ...

  7. Android Studio 解析json文件出现中文乱码解决方法

    作为一个Android开发初学者,好不容易找到解决方法,跟大家分享一下, 其实很简单,只要保持服务器上的文件(date2.json)与软件的编码方式一样就行. 我用的Android Studio是ut ...

  8. Oracle_PL/SQL(6) 触发器(序列、视图)

    序列1.创建序列create sequence seq_alog start with 1 increment by 1 maxvalue 999999999999999999999999999 mi ...

  9. oracle 异常错误处理

    分类: Oracle 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2 ...

  10. JS-Date心得

    写在前面的话:我觉得JavaScript以后也要出像Java1.8新增的Date类,这个月份要是从1开始多好,强迫症很难受.......也就发发牢骚,没出来之前还得这么用..... 属性: const ...