`

redis主从设置 监控工具sentinel

 
阅读更多

 

 

1 redis主从复制(replication):


redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,
当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,不能执行写操作,并接受主数据库同步过来的数据,
即使通过修改从节点redis.conf的slave-read-only no,将从节点修改成可写,那么从节点写入的数据也不会被也不能被同步到主节点或者其他从节点上。
数据同步只能是从主到从的单方向操作。
一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

配置主从做法1 :修改配置文件redis.conf,只修改从数据库

修改从数据库的配置文件,修改为:
slaveof host(主数据库地址) 端口
eg: slaveof 192.168.1.110 6379
修改后,重启从节点上的redis,重启后会发现从节点会自动从主节点上备份数据


设置主从以及主节点负责写,同步到其余数据,从节点只负责读的目的是实现数据的读写分离,提高速度。


配置主从做法2 :命令行写动态设置主从节点(生产环境下不建议  数据库重启后 这些设置的命令行将失效)
从节点上执行命令:
192.168.1.111:6379>slaveof 192.168.1.110 6379
取消111的从节点设置,取消后111变成自己机器的主节点
192.168.1.111:6379>slaveof no one

 


通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。


主从复制原理:
原理:
1:当一个从数据库启动时,会向主数据库发送sync命令,
2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来
3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。
4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。
注意:redis2.8之前的版本:当主从数据库同步的时候因为网络原因断开重连后会重新执行上述操作,不支持断点续传。
redis2.8之后支持断点续传。


如果redis只是作为一个缓存来使用,那么只需要一个节点就可以。

如果主数据库设置了密码, 那么在从数据库的 redis.conf文件中,设置masterauth的密码,来实现免密码连接主数据库的目的。
否则同步数据失败。

 

 

 

 

 

 

 

2 监控工具sentinel

 

 

 

 

 
redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务
1:监控
2:提醒
3:自动故障转移


配置sentinel
修改redis/sentinel.conf文件:
sentinel monitor 自定义监控名称 监控节点IP 监控节点端口 num num表示至少有多少个sentinel认为master失效后才执行故障转移操作
由num引出如下概念:
主观下线: 只有一个sentinel实例认为主节点下线,即只启动一个sentinel 监听主节点  这个启动的sentinel可以放在主节点上 可以放在从节点上
客观下线: 多个sentinel实例认为主节点下线,即只启动多个sentinel 监听主节点  
sentinel 也是一个进程,一个节点可以有一个或者多个sentinel,只有启动的这个sentinel进程端口不同即可
   
上图如下:

。。。。。。

 


配置sentinel:
sentinel monitor mymaster 127.0.0.1 6379 1
启动sentinel的两种方式
1) redis-sentinel sentinel.conf
2) redis-server sentinel.conf --sentinel

 

实验:  一个sentinel 一个master 一个slaver

111上设置为从:

110节点上:
cp sentinel.conf /etc/
vi sentinel.conf
sentinel monitor mymaster 192.168.1.170 6379 1    --->监听主节点,如果主节点挂掉则让从节点为主 当主节点被人为开启后,依旧让 主为主 从节点从主变更为从

 

启动redis

启动sentinel


111节点上:
启动redis
命令行中动态设置从节点:  ----> 这样在测试sentinel切换机器以及手动回复主节点后 在回归主节点为master实验上能做好
slaveof 192.168.1.110 6379

110上,shutdown 关闭
后看110上sentinel的日志变化, +switch-master 110 111节点上
然后在启动110上,再看110的sentinel的日志变化,此时110启动后变成主节点  111位从节点

 

实验:  两个sentinel 一个master 一个slaver

110 111上:
110节点上:
cp sentinel.conf /etc/
vi sentinel.conf
sentinel monitor mymaster 192.168.1.110 6379 2

 

 


监控(Monitoring): Redis Sentinel实时监控主服务器和从服务器运行状态。

提醒(Notification):当被监控的某个 Redis 服务器出现问题时, Redis Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知。

自动故障转移(Automatic failover): 当一个主服务器不能正常工作时,Redis Sentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接到 Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口。

 

 

 

 

sentinel一些命令:
INFO
sentinel的基本状态信息
SENTINEL masters
列出所有被监视的主服务器,以及这些主服务器的当前状态
SENTINEL slaves <master name>
列出给定主服务器的所有从服务器,以及这些从服务器的当前状态
SENTINEL get-master-addr-by-name <master name>
返回给定名字的主服务器的 IP 地址和端口号
SENTINEL reset <pattern>
重置所有名字和给定模式 pattern 相匹配的主服务器。重置操作清除主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel 。
SENTINEL failover <master name>
当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移,但是它会给其他sentinel发送一个最新的配置,其他sentinel会根据这个配置进行更新
 

 

 

 

 


 

分享到:
评论

相关推荐

    基于phpredis封装的redis-sentinel客户端redis-sentinel.zip

    redis-sentinel 就像他的名字一样,他是一个哨兵,监控 master 状态,如果超过规定时间没有响应,则自动进行主从切换,期间会有一段时间(决定于具体的配置参数)redis集群无法提供服务 。原理类似 mysql 的 MHA。...

    docker安装redis集群 - 副本.docx

    1、该文档主要介绍docker监控统计portainer自动化工具使用,针对docker服务、...2、文档包含docker中redis主从配置,sentinel哨兵对redis监控及故障切换等具体操作 3、springboot项目链接sentinel集群具体操作demo示例

    Linux学习教程之redis哨兵集群详解

    Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中,下面话不多说了,来一起看看详细的介绍吧 1、Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个...

    Linux下安装配置redis详细教程,并配置哨兵模式,redis中文详解

    Sentinel负责监控Redis集群的健康情况。 如果主Redis挂掉,Sentinel集群会通过投票选择一个新的主Redis。当原来的主Redis恢复时,它会被当做新的主Redis的从Redis重新加入Redis集群。 设置连接master和slave的密码...

    Redis数据库的最佳实践 19章节完全解读Redis Redis从入门到精通视频教程.txt

    &lt;redis从入门到精通视频教程&gt; ├REDIS 入门指南.pdf ├&lt;1.redis的简介和安装&gt; ├&lt;2.redis系统命令简介&gt; ...├&lt;17.redis的主从复制模式&gt; ├监控慢日志查询以及源码分析&gt; ├项目架构之一主两从三Sentinel&gt;

    玩转Redis搭建集群之Sentinel详解

    但是Redis集群是不会自动进行主从切换的,也就是说,如果主节点非常不争气的在凌晨3点挂了,那么运维同学就要马上起床,把从节点改成主节点,这样的操作是非常繁琐低效的。为此,Redis官方提供了一种解决方案:Redis...

    redis非关系型数据库

    一、Redis是什么? 1 是一个高性能的(key/value)分布式内存数据库; 2 是一个NoSql数据库,基于...4 分布式系统下,Redis可以利用哨兵模式Sentinel监控主机工作状态,在Master主服务器发生故障的时候,可以实现Maste

    Redis有哪些功能?

    Sentinel可以管理多个Redis服务器,它提供了监控、提醒以及自动的故障转移功能; 复制则是让Redis服务器可以配备备份的服务器; Redis也是通过这两个功能保证Redis的高可用; 4、集群(Cluster) 单台服务器资源...

    "优雅的SSM框架"进行完善(页面分离+nginx负载均衡+tomcat集群)

    Redis Sentinel主从高可用方案 Redis Cluster集群高可用方案 Druid(数据源配置 sql防注入 sql性能监控) 前后端分离(Html替代Jsp) Nginx静态加载、负载均衡 基于keepalived的nginx高可用方案 Tomcat集群(Redis...

    redis集群架构

    通知:当被监控的某个redis服务器出现问题,Sentinel通过API脚本向管理员或者其他的应用程序发送通知。自动故障转移:当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点是主从关系的...

    redis哨兵

    手动复制比较繁琐,很多需要考虑,所有redis提供了sentinel来实现了高可用 基本架构 sentinel 也是一个进程,但是它不会存储任何的数据,它主要就是监控各个节点是否有问题,然后实现故障转移,然后通知客

    将优雅的SSM框架拆分为分布式架构(基于dubbo+zookeeper)+源代码+文档说明

    Redis Sentinel主从高可用方案 Druid(数据源配置 sql防注入 sql性能监控) Dubbo+Zookeeper分布式服务框架 合理的分布式服务划分(common+api+service+web) 资源调度和治理中心(SOA)(dubbo-admin) 服务监控方案...

    单点登录源码

    内容管理系统:支持多标签、多类目、强大评论的内容管理,有基本单页展示,菜单管理,系统设置等功能。 &gt; zheng-pay - 一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的...

Global site tag (gtag.js) - Google Analytics