redis的主从复制和哨兵

一. redis的主从复制

  1. 主从复制的概念  

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。

    默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

  2. 主从复制的作用

    数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

    故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

    负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

    高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

二. redis主从复制的使用

  1. 主从复制的开启

    主从复制的开启,完全是在从节点发起的;不需要我们在主节点做任何事情。

  2. 三种方式

    - 配置文件

      在从库的配置文件中加入 slaveof ip port

    - 启动服务端时

      redis-server /redis.conf  --slaveof ip port

    - 客户端指令

      slaveof -ip -port

  3. 手动切换主库

1. 准主库, 去除主库
    slaveof no one   
 
2. 从库更换主库
    slaveof ip port

3. 查看主从信息
    info replication

三. sentinel哨兵

  1. 哨兵的功能

    哨兵的核心功能是主节点的自动故障转移.

  2. 哨兵功能实现

    监控(Monitoring):哨兵会不断地检查主节点和从节点是否运作正常。

    自动故障转移(Automatic failover):当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。

    配置提供者(Configuration provider):客户端在初始化时,通过连接哨兵来获得当前Redis服务的主节点地址。

    通知(Notification):哨兵可以将故障转移的结果发送给客户端。

  3. 哨兵的配置

bind 127.0.0.1
port 26379  
dir /var/redis/data/
logfile "26379.log"

// 当前Sentinel节点监控 127.0.0.1:6379 这个主节点
// 2代表判断主节点失败至少需要2个Sentinel节点节点同意,少数服从多数 
// mymaster是主节点的别名
sentinel monitor mymaster127.0.0.1 6379 2

//每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
sentinel down-after-milliseconds mymaster 30000

//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel parallel-syncs mymaster 1

//故障转移超时时间为180000毫秒
sentinel failover-timeout s18ms 180000
daemonize yes  

# 配置多个哨兵,只需要修改端口即可
哨兵的配置

  4. 启动哨兵的两种方式

    redis-sentinel  /sentinel-26379.conf

    redis-server /sentinel-26379.conf --sentinel

  5. 查看哨兵的信息命令

    info sentinel

  6. 哨兵切换主从切换总结

    哨兵系统中的主从节点,与普通的主从节点并没有什么区别,故障发现和转移是由哨兵来控制和完成的。

    哨兵节点本质上是redis节点。

    每个哨兵节点,只需要配置监控主节点,便可以自动发现其他的哨兵节点和从节点。

    在哨兵节点启动和故障转移阶段,各个节点的配置文件会被重写(config rewrite)。用来主从切换

    一个哨兵可以监控多个主节点,通过配置多条sentinel monitor即可实现。

 

posted @ 2019-06-30 16:17  雾霾1024  阅读(144)  评论(0编辑  收藏  举报