首先配置一主多从示例如下:

1、两台主机IP地址如下:

主: 192.168.3.81  端口:6379

从:192.168.3.82   端口:6379

从:192.168.3.82   端口:6380

2、首先建立Redis数据存储目录

mkdir /var/lib/data/

3、master(6379端口)Redis配置文件设置

vim /etc/redis-6379.conf

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis/redis_6379.log
databases 16 save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_6379.rdb
dir /var/lib/data masterauth 123456
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass lian919 appendonly yes
appendfilename "appendonly_6379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

3、slave(6379端口)配置文件设置

vim /etc/redis-6379.conf

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis/redis_6379.log
databases 16 save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_6379.rdb
dir /var/lib/data slaveof 192.168.3.81 6379
masterauth 123456
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass 123456 appendonly yes
appendfilename "appendonly_6379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

4、slave(6380端口)配置文件设置

vim /etc/redis-6380.conf

bind 0.0.0.0
protected-mode yes
port 6380
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6380.pid
loglevel notice
logfile /var/log/redis/redis_6380.log
databases 16 save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump_6380.rdb
dir /var/lib/data slaveof 192.168.3.81 6379
masterauth 123456
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass 123456 appendonly yes
appendfilename "appendonly_6380.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

注:关于配置文件说明查看:https://www.cnblogs.com/albert919/p/16511082.html

5、启动Redis主和从,启动命令如下

redis主启动命令:

redis-server /etc/redis-6379.conf

redis从(注:6379和6380端口)启动命令

redis-server /etc/redis-6379.conf 

redis-server /etc/redis-6380.conf

6、查看redis是否启动成功命令

ps  -ef |grep redis

注:如果有redis启动进程说明启动成功

7、查看从库连接主库是否成功。查看命令使用进入redis交互模式输入 info replication:查看如同示例

注:redis主从复制故障恢复

  1、redis主库主库出现故障后,直接把从库切换为主库命令为
  slaveof no one

  2、redis如果是一主多从的情况,主库出现故障后,把其中一台从库切换为主库后。其它从库需要重新建立的的主从关系
  slaveof 切换新的主库IP地址 切换新的主库端口

二、 哨兵模式配置

设置3个哨兵模式监控redis主从,如果redis主库宕机,至少两个哨兵节点同意才能切换。

3个哨兵分别建立在redis主从上面,redis主架设哨兵1,redis从架设哨兵2,哨兵3

1、哨兵模式端口分别为:

  1、redis主哨兵(IP:192.168.3.81):

    哨兵1端口:26379 (注:配置文件默认端口就是26379)

  2、redis从哨兵(IP: 192.168.3.82)

    哨兵2端口:26379

    哨兵3端口:26380

2、redis主哨兵(192.168.3.81)26379端口配置文件如下:

vim /etc/redis-sentinel-26379.conf

port 26379

protected-mode no

daemonize yes

dir /var/lib/data

logfile /var/log/redis/sentinel_26379.log

sentinel monitor mymaster 192.168.3.81 6379 2

sentinel auth-pass mymaster 123456

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

3、redis从哨兵(IP:192.168.3.82)26379端口配置文件

vim /etc/redis-sentinel-26379.conf

port 26379

protected-mode no

daemonize yes

dir /var/lib/data

logfile /var/log/redis/sentinel_26379.log

sentinel monitor mymaster 192.168.3.81 6379 2

sentinel auth-pass mymaster 123456

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

redis从哨兵(IP:192.168.3.82)26380端口配置文件

vim /etc/redis-sentinel-26380.conf

port 26380

protected-mode no

daemonize yes

dir /var/lib/data

logfile /var/log/redis/sentinel_26380.log

sentinel monitor mymaster 192.168.3.81 6379 2

sentinel auth-pass mymaster 123456

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

注:

  1、sentinel monitor mymaster 192.168.3.81 6379 2

    monitor:代表监控

    mymaster:设置的别名,这个别名可以根据自己进行修改

    192.168.3.81 6379:192.168.3.81:代表的是redis主IP地址 6379:代表的是redis主端口

    2:判断redis主节点失败至少需要2个Sentinel节点同意切换

  2、关于配置文件说明访问:https://www.cnblogs.com/albert919/p/16511082.html

4、哨兵启动命令

26379端口哨兵启动命令:

redis-sentinel /etc/redis-sentinel-26379.conf

26380端口哨兵启动命令

redis-sentinel /etc/redis-sentinel-26380.conf

5、查看哨兵连接状态

redis-cli -p 26379 info sentinel

master0:name=mymaster,status=ok,address=192.168.3.81:6379,slaves=2,sentinels=3 红色方框内容说明

name=mymaster  #这里的mymaster显示是配置文件里面sentinel monitor mymaster 192.168.3.81 6379 2 这里的mymaster设置

status=ok #连接状态

address=192.168.3.81:6379 #哨兵监控redis主ip地址和端口

slaves=2 #这里显示有两个redis从节点

sentinels=3 #这里代表有3个哨兵节点

Redis一主多从哨兵模式的更多相关文章

  1. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

    No cross,no crown . 不经历风雨,怎么见彩虹. Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置 ...

  2. 扩展Redis的Jedis客户端,哨兵模式读请求走Slave集群

    原 扩展Redis的Jedis客户端,哨兵模式读请求走Slave集群 2018年12月06日 14:26:45 温故而知新666 阅读数 897   版权声明:本文为博主原创文章,遵循CC 4.0 b ...

  3. Redis主从集群及哨兵模式

    本次实验环境准备用一台服务器模拟3台redis服务器,1主2从 主从集群搭建 第一步:安装Redis 安装Redis,参考前面安装Redis文章,保证单机使用没有问题. 第二步:配置服务器文件 定位到 ...

  4. docker+redis安装与配置,主从+哨兵模式

    docker+redis安装与配置 docker安装redis并且使用redis挂载的配置启动 1.拉取镜像 docker pull redis:3.2 2.准备准备挂载的目录和配置文件 首先在/do ...

  5. Redis主从复制(Master/Slave) 与哨兵模式

    Redis主从复制是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 Redis主从复制 ...

  6. Redis高可用集群-哨兵模式(Redis-Sentinel)

     前言 Redis哨兵模式,用现在流行的话可以说就是一个“哨兵机器人”,给“哨兵机器人”进行相应的配置之后,这个"机器人"可以7*24小时工作,它能能够自动帮助你做一些事情,如监控 ...

  7. Redis系列-第六篇哨兵模式

    https://blog.csdn.net/niugang0920/article/details/97141175 Redis的主从复制模式下, 一旦主节点由于故障不能提供服务, 需要人工将从节点晋 ...

  8. redis集群搭建和哨兵模式以及AOF和RDB持久化

    Redis主从+哨兵模式 1.环境准备 (1)三台独立的linux主机 (2)IP分别为:10.150.200.182 (从) 10.150.200.184(从)  10.150.200.195(主) ...

  9. Redis(十一):哨兵模式架构设计分析

    业务最初的应用场景中,我们也许使用单机redis就可以应付业务要求,但并非一直可行. 比如单机的读写能力问题,单机的可用性问题,单机的数据安全性问题.这些都是许多互联网应用经常会遇到的问题,也基本上都 ...

  10. 基于Docker-compose搭建Redis高可用集群-哨兵模式(Redis-Sentinel)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_110 我们知道,Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3) ...

随机推荐

  1. 使用命令行运行用例时提示python.exe: Error while finding module specification for 'testcase_1.Test'.....

    文件路径 输入命令 D:\demo>python -m unittest unittest_1/testcase_1.Test结果提示 ModuleNotFoundError: No modul ...

  2. week_5

    Andrew Ng机器学习笔记---by Orangestar Week_5 重点:反向传播算法,backpropagation 1. Cost Function神经元的代价函数 回顾定义:(上节回顾 ...

  3. Python图像处理丨详解图像去雾处理方法

    摘要:本文主要讲解ACE去雾算法.暗通道先验去雾算法以及雾化生成算法. 本文分享自华为云社区<[Python图像处理] 三十.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)丨[拜托了 ...

  4. 用Dockerfile制作一个java应用镜像,ubuntu基础篇

    内容介绍: (1) 本章目的,将一个自行开发的java程序webpay-api,制作为docker自定义镜像,并且进行部署. (2) 实验环境: 物理机:VMware 虚拟机 + CentOS 7.8 ...

  5. java RSA加密

    参考了下面这个博主的文章,很有收获,简单处理后记录一下 RSA加密.解密.签名.验签的原理及方法 - PC君 - 博客园 工具类自带生成秘钥的方法,也可以用第三方工具生成秘钥 package com. ...

  6. 【力扣】2400. 恰好移动 k 步到达某一位置的方法数目

    题目 2400. 恰好移动 k 步到达某一位置的方法数目 解题思路 观察上面示例,容易画出下面的递归树,因此可以考虑DFS. DFS 很容易写出DFS的代码 class Solution { int ...

  7. NG-ZORRO + Angular11增加自定义全局样式,不影响其他页面全局样式,仅作用于当前页面

    实现只需要两步 ts import { ViewEncapsulation } from '@angular/core';// 关键代码 @Component({ selector: 'app-tes ...

  8. Java 进阶P-1.1+P-1.2

    用类制造对象 对象与类 对象是实体,需要被创建,可以为我们做事情 类是规范,根据类的定义来创建对象 对象=属性+服务 数据:属性或状态 操作:函数 从这些例子可以看出来 class是提供服务的,数据是 ...

  9. Node.js学习笔记----day02

    认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.简单实现Apache功能 var http = require('http') var fs = require('fs') // 1. ...

  10. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...