哨兵

分布式设计-哨兵

有些话、适合烂在心里 提交于 2019-11-28 16:00:32
作用 监控redis服务器的运行状态, 可以进行自动故障转移(failover), 实现高可用 与 数据库主从 配合使用的机制 特点 独立的进程, 每台redis服务器应该至少配置一个哨兵程序 监控redis主服务器的运行状态 出现故障后可以向管理员/其他程序发出通知 针对故障,可以进行自动转移, 并向客户端提供新的访问地址 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 流言协议 当某个哨兵程序ping 发现监视的主服务器下线后(心跳检测), 会向监听该服务器的其他哨兵询问, 是否确认主服务器下线, 当 确认的哨兵数量 达到要求(配置文件中设置)后, 会确认主服务器下线(客观下线), 然后进入投票环节 投票协议 当确认主服务器客观下线后, 哨兵会通过 投票的方式 来授权其中一个哨兵主导故障转移处理 只有在 大多数哨兵都参加投票 的前提下, 才会进行授权, 比如有5个哨兵, 则需要至少3个哨兵投票才可能授权 目的是避免出现错误的故障迁移 建议最低配置 至少在3台服务器上分别启动至少一个哨兵 如果只有一台, 则服务器宕机后, 将无法进行故障迁移 如果只有两台, 一旦一个哨兵挂掉了, 则投票会失败 相关配置 (sentinel.conf) bind 127.0.0.1 # 哨兵绑定的ip port 26381 # 哨兵监听的端口号,

Redis哨兵功能与集群搭建

有些话、适合烂在心里 提交于 2019-11-28 15:28:24
6.redis哨兵功能 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能。 而redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群,自动发现master宕机,进行自动切换slave > master。 sentinel主要功能如下: 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识 如果被标识的是主节点,sentinel就会和其他的sentinel节点“协商”,如果其他节点也认为主节点不可达,就会选举一个sentinel节点来完成自动故障转义 在master-slave进行切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换 ↓ShowCode↓ redis命令: redis-cli info #查看redis数据库信息 redis-cli info replication #查看redis的复制授权信息 redis-cli info sentinel

windos批处理启动redis与哨兵

前提是你 提交于 2019-11-28 06:42:43
为各个启动单独建立脚本后用总的bat调用 创建脚本,redis6379.bat 脚本内容: @echo off title redis-server set ENV_HOME6379="G:\Redis6379" set ENV_HOME6380="G:\Redis6380" set ENV_HOME6381="G:\Redis6381" G: cd %ENV_HOME6379% start redis-server.exe redis.windows.conf cd %ENV_HOME6380% start redis-server.exe redis.windows.conf cd %ENV_HOME6381% start redis-server.exe redis.windows.conf cd %ENV_HOME6379% start redis-server.exe sentinel.conf --sentinel cd %ENV_HOME6380% start redis-server.exe sentinel.conf --sentinel cd %ENV_HOME6381% start redis-server.exe sentinel.conf --sentinel exit 来源: https://www.cnblogs.com/cowshed/p

哨兵模式原理

落爺英雄遲暮 提交于 2019-11-28 06:42:30
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。 然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。 用文字描述一下故障切换(failover)的过程。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。 来源: https://www.cnblogs.com/cowshed/p/11397701.html

哨兵模式启动redis

巧了我就是萌 提交于 2019-11-28 06:42:26
# 启动Redis服务器进程 ./redis-server ../redis.conf # 启动哨兵进程 ./redis-sentinel ../sentinel.conf windows 启动 redis-server.exe sentinel.conf --sentinel 首先是主机(192.168.11.128)的Redis服务进程,然后启动从机的服务进程,最后启动3个哨兵的服务进程。 以客户端进入,info查看状态 192.168.65.1 192.168.65.1 来源: https://www.cnblogs.com/cowshed/p/11397706.html

Redis哨兵(Sentinel)模式

☆樱花仙子☆ 提交于 2019-11-28 03:50:26
Redis哨兵(Sentinel)模式 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。 一、哨兵模式概述 哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。 Redis哨兵 这里的哨兵有两个作用 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。 然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。 用文字描述一下故障切换(failover)的过程。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后

redis主从+ 哨兵模式(sentinel)+漂移VIP实现高可用系统

可紊 提交于 2019-11-27 22:00:52
原文: https://www.jianshu.com/p/c2ab606b00b7 客户端程序 客户端程序(如PHP程序)连接redis时需要ip和port,但redis-server进行故障转移时,主redis是变化的,所以ip地址也是变化的。客户端程序如何感知当前主redis的ip地址和端口呢? redis-sentinel提供了接口,请求任何一个sentinel,发送 SENTINEL get-master-addr-by-name <master name> 就能得到当前主redis的ip和port。 获取当前主redis的ip和port: 客户端每次连接redis前,先向sentinel发送请求,获得主redis的ip和port,然后用返回的ip和port连接redis。 这种方法的缺点是显而易见的,每次操作redis至少需要发送两次连接请求,第一次请求sentinel,第二次请求redis。 php请求sentinel程序代码可参见: https://github.com/huyanping/redis-sentinel 更好的办法是使用VIP,当然这对配置的环境有一定的要求,比如redis搭建在阿里云服务器上,可能不支持VIP。 VIP方案是,redis系统对外始终是同一ip地址,当redis进行故障转移时

Redis核心配置

久未见 提交于 2019-11-27 11:01:30
文章目录 Redis的主从复制 Redis配置哨兵模式 Redis事务 Redis的持久化 RDB Redis的主从复制 主从复制的简介 1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。 2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。 主从复制的过程 主从复制的过程 1:当一个从数据库启动时,会向主数据库发送sync命令, 2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来 3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。 4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。 假设我们现在有3个redis服务,地址分别为 192.168.110.138(master), 192.168.110.138(slave), 192.168.110.140(slave) salve的配置:修改etc/redis/redis.conf文件 sudo vim redis

redis 哨兵模式

安稳与你 提交于 2019-11-27 07:33:36
redis sentinel 模式配置(windows) 1.启动主服务6379: redis-server .exe --port 6379 (这里为了简单没有读取配置文件,且只安装了一个redis服务) 2.启动哨兵模式: redis-server.exe ./sentienl26379.conf --sentinel sentienl26379.conf 文件配置如下 port 26379 #监控主服务6379,哨兵投票结果查>=1的时候进行故障转移 sentinel monitor s1 127.0.0.1 6379 1 3. 启动从服务6380 ,6381: redis-server.exe --port 6380 --slaveof 127.0.0.1 6379 redis-server.exe --port 6381 --slaveof 127.0.0.1 6379 查看 哨兵模式日志,6379服务下面有两个从服务6380,6381 现在停止6379服务,哨兵会从6380,6381下面选举一个成为主服务。查看哨兵日志 看出来6380成为了主服务,6381为从服务,6379尝试成为从服务,但是失败了。 重启启动6379服务,哨兵会检测到6379服务,并将它变为6380的从服务 客户端连接6379,尝试set 至此,单个sentinel模式配置完成。 来源: https: