首页 > 数据库 >Redis哨兵模式搭建

Redis哨兵模式搭建

时间:2023-06-07 10:01:19浏览次数:39  
标签:no Redis redis 哨兵 master sentinel home yes 搭建

##一:哨兵主要作用 监控:监控redis主库及从库运行状态; 通知:如果redis发生故障转移,可以通过邮件通知管理员; 自动故障转移:一旦发现主库宕机,则在从库中通过选举新的master进行故障转移。

##二:工作原理 哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。 每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方宕机了,这种宕机称为”主观认为宕机” Subjective Down,简称sdown)。 若“哨兵群”中的多数sentinel,都报告某一master没响应,系统才认为该master真正宕机,即客观上认为宕机,Objective Down,简称odown),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。

##三:部署 master: 192.168.1.247 slave1: 192.168.1.110 slave2: 192.168.1.211

###1. Redis服务安装 这里Redis版本为5.0.5。 Redis的安装步骤为:下载、解压、编译、配置、启动。 以下以247服务器安装为例,其他类似。

1.1 安装所需环境和工具

centos
yum -y install wget vim tcl gcc make

ubuntu
apt-get install wget vim tcl gcc make

1.2 下载Redis

cd /home/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

1.3 解压

tar -zxvf redis-5.0.5.tar.gz

1.4 编译

cd redis-5.0.5/
make install PREFIX=/home/redis/

1.5 拷贝配置文件到Redis程序目录

cp redis.conf /home/redis/bin
cp sentinel.conf /home/redis/bin

redis.conf是Redis服务的配置文件;sentinel.conf是哨兵服务的配置文件。

1.6 修改配置文件

mkdir -p /home/redis/run
mkdir -p /home/redis/log
mkdir -p /home/redis/working
vim /home/redis/bin/redis.conf

通用配置

 # 需要不同服务器的节点连通,就不能设置为 127.0.0.1
 bind 0.0.0.0
 # 需要不同服务器的节点连通,这个就要设置为 no
 protected-mode no
 port 6379
 # 密码
 requirepass "ABC!!123"
 # 主节点认证,主从节点均需要配置
 masterauth "ABC!!123"
 tcp-backlog 511
 timeout 0
 tcp-keepalive 300
 # 设置后台运行redis
 daemonize yes
 supervised no
 dir "/home/redis/working"
 pidfile "/home/redis/run/redis_6379.pid"
 logfile "/home/redis/log/redis.log"
 loglevel notice
 databases 16
 always-show-logo yes
 save 900 1
 save 300 10
 save 60 10000
 stop-writes-on-bgsave-error yes
 rdbcompression yes
 rdbchecksum yes
 dbfilename "dump.rdb"
 replica-serve-stale-data yes
 replica-read-only yes
 repl-diskless-sync no
 repl-diskless-sync-delay 5
 repl-disable-tcp-nodelay no
 replica-priority 100
 lazyfree-lazy-eviction no
 lazyfree-lazy-expire no
 lazyfree-lazy-server-del no
 replica-lazy-flush no
 appendonly yes
 appendfilename "appendonly.aof"
 appendfsync everysec
 no-appendfsync-on-rewrite no
 auto-aof-rewrite-percentage 100
 auto-aof-rewrite-min-size 64mb
 aof-load-truncated yes
 aof-use-rdb-preamble yes
 lua-time-limit 5000
 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
 stream-node-max-bytes 4096
 stream-node-max-entries 100
 activerehashing yes
 client-output-buffer-limit normal 0 0 0
 client-output-buffer-limit replica 256mb 64mb 60
 client-output-buffer-limit pubsub 32mb 8mb 60
 hz 10
 dynamic-hz yes
 aof-rewrite-incremental-fsync yes
 rdb-save-incremental-fsync yes

从节点配置

replicaof 192.168.1.211 6379

1.7 启动服务

cd /home/redis/bin
./redis-server redis.conf

1.8 使用 ps -ef|grep redis 查看是否都启动成功,IP和端口号都正确

使用info Replication查看主从复制状态

cd /home/redis/bin
./redis-cli -p 6379 
auth ABC!!123
info Replication

主节点

从节点(这里从节点端口用的6377)

2.哨兵配置

哨兵模式采用一主二从三哨兵模式。 2.1 修改配置

cd /home/redis/bin
vim sentine.conf
# 保护模式默认关闭
protected-mode no
# 绑定监听IP
bind 0.0.0.0
# 哨兵端口
port 26379
# 后台运行
daemonize yes
# pid
pidfile "/home/redis/run/redis-sentinel.pid"
# log
logfile "/home/redis/log/redis-sentinel.log"
# 工作目录
dir "/home/redis/working"
# 设置初始master以及法定认为下线人数:
sentinel monitor redis-master 192.168.1.211 6379 2
# 配置认证密码
sentinel auth-pass redis-master ABC!!123
# 设置初始master以及法定认为下线人数:
sentinel down-after-milliseconds redis-master 30000
# 指定在故障转移期间,多少个slave向新的master同步得数量,如果slave是提供查询服务,则应该设置小一点更好
sentinel parallel-syncs redis-master 1
# 指定故障转移超时时间,默认为3分钟
sentinel failover-timeout redis-master 180000
# 禁止修改脚本,避免脚本重置
sentinel deny-scripts-reconfig yes

2.2 启动

./redis-sentinel sentinel.conf

3.验证

3.1查看哨兵信息 随意登录一台主机执行 info Sentinel命令,下面以连接211机器为例。

cd /home/redis/bin
./redis-cli -p 26379 info Sentinel

输出信息如下:

###SpringBoot配置Redis哨兵模式 application.yml 添加Redis配置

spring:
    redis: 
        database: 1
        password: ABC!!123
        # 哨兵模式
        sentinel:
            master: redis-master
            nodes: 192.168.1.211:26379,192.168.1.247:26379,192.168.1.110:26379

标签:no,Redis,redis,哨兵,master,sentinel,home,yes,搭建
From: https://blog.51cto.com/u_15204812/6430007

相关文章

  • 【Redis】【持久化】RDB 快照是怎么实现的?
    1  前言这节我们来看看持久化方式中的RDB哈。2  RDB快照虽说Redis是内存数据库,但是它为数据的持久化提供了两个技术。分别是「AOF日志和RDB快照」。这两种技术都会各用一个日志文件来记录信息,但是记录的内容是不同的。AOF文件的内容是操作命令;RDB文件的内容......
  • Python | VSCode的Python编程环境搭建
    1、简介VScode是一款轻量化的代码编辑器,也是目前极为流行的适配性极强的写代码的工具,不仅仅可以用于C/C++代码项目的编写,还能够用于Python、java等其他语言。2、内容a、先下载安装Python的解释器b、安装VSCodec、安装Python相关的插件d、即可运行编译Python代码附:完整教程步骤......
  • 【Redis】【持久化】AOF 持久化是怎么实现的?
    1  前言这节我们来看看持久化方式中的AOF哈。2  AOF日志试想一下,如果Redis每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里,然后重启Redis的时候,先去读取这个文件里的命令,并且执行它,这不就相当于恢复了缓存数据了吗?这种保存写操作命令到日志的持久化方......
  • k8s实战案例之部署redis单机和redis cluster
    1、在k8s上部署redis单机1.1、redis简介redis是一款基于BSD协议,开源的非关系型数据库(nosql数据库),作者是意大利开发者SalvatoreSanfilippo在2009年发布,使用C语言编写;redis是基于内存存储,而且是目前比较流行的键值数据库(key-valuedatabase),它提供将内存通过网络远程共享的一种服......
  • openwrt 搭建halo
    1、openwrt中安装docker2、更具情况在自己安装的目录里新建目录mkdir-p/opt/docker/Configs/.halomkdir-p/data/docker/.halo3、进入安装目录cd/opt/docker/Config/.halo4.创建容器并拉取镜像dockerrun-it-d--namehalo -p8090:8090 -v/opt/docker/Configs/.......
  • http服务器搭建
    参考来源:https://www.cnblogs.com/roluodev/p/13585182.html# yuminstallhttpd #关闭防火墙 #可以访问http://ip #http服务器的默认目录#http服务器开启目录sudovi/etc/httpd/conf.d/welcome.conf把Options-Indexes中的减号改为加号此处作用为访问目录......
  • Kafka 单机部署搭建及其基本使用
    最近在搞Flink框架其中数据源需要模拟kafka取数据,于是自己搭建了一套单机的kafka环境,以便用于测试。现整理如下的笔记,发上来和大家分享。后续还会有kafka的相关笔记,会与大家继续分享!当前文档所部署服务器IP地址为192.168.118.218hostname为web一、kafka环境搭建下载kafka......
  • git服务器搭建
    参考来源:https://www.runoob.com/git/git-server.html#安装gitpipinstallgitgit--version#创建一个git用户组和用户,用来运行git服务#创建证书登录收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一......
  • 第三天:环境变量搭建和运行HelloWord程序
    java开发环境搭建配置环境变量我的电脑-->右键属性点击高级系统设置选择环境变量选择系统变量,新建--》JAVA_HOME配置path变量测试是否安装成功打开cmd输入命令java-version目录含义bin:存放一些可执行程序include:JDK是由C和C++编写启动时......
  • 哨兵模式
    哨兵简介哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。哨兵的作用监控不断的检查master和slave是否正常运行master存活检测、master与slave运行情况检测通知(提醒)当被监控的服务器......