码迷,mamicode.com
首页 > 其他好文 > 详细

Redis——主从和哨兵机制

时间:2019-08-04 01:21:37      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:连接   工作原理   height   cond   mil   inf   run   div   模式   

一、主从和哨兵机制:

  1)主从:配置多态主从服务器,解决高可用问题;一台主服务器对应多台从服务器,从服务器自动拷贝主服务器的数据;

  2)哨兵:配置哨兵模式,用于解决主服务器挂掉,需要再次手动配置从服务器作为主服务的操作;

      哨兵会自动选择一台数据偏移量最大的从服务器,作为新得主服务器;

二、主从服务器配置:

  1)创建两文件夹:分别存放两个服务器得数据卷和配置文件;

  2)在配置文件中配置主服务器得密码:

    masterauth 123456

  3)使用docker启动两个容器:分别映射两个端口;

docker run -v /usr/local/docker/redis-master/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis-master/conf/data:/data --name myredis-master -p 6379:6379 -d redis redis-server /usr/local/etc/redis/redis.conf
docker run -v /usr/local/docker/redis-slave/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis-slave/conf/data:/data --name myredis-slave -p 6380:6379 -d redis redis-server /usr/local/etc/redis/redis.conf

  4)在从服务器中使用命令连接主服务器;

    slaveof  主服务器的ip地址  端口号

    断开复制:slaveof no one

  5)查看连接状态:

    info replication

    1、从服务器信息查看;

       技术图片

      技术图片

    2、主服务器信息查看:

      技术图片

  6)主从复制流程:   

    1、从节点保存主节点信息;

    2、主从建立socket连接;

    3、从节点发送ping命令,等待主节点返回pong回应;

    4、权限验证;

    5、主从连接正常后,开始同步数据集,首次建立复制,是全量复制的方式;

    6、持续的主从复制,后续主节点发生数据变更,会继续给从节点发送命令,此处采用增量复制;

    PS:

      主节点和从节点都会记录一个叫复制偏移量的值,来确定从哪开始继续复制;

      通过在主从节点执行info repplication 对比offset的值即可;

三、哨兵Redis Sentinel:

   工作原理: 

    1、每个哨兵节点通过定时监控发现主节点出现故障;

    2、多个哨兵节点对主节点的故障达成一致,则选择出一个哨兵节点作为领导者负责本次故障转移处理;

      //达成一致得条件时超过半数,则至少需要三台服务器,配置三个哨兵;

    3、哨兵全自动完成主服务器转移;

三、哨兵配置:

  1)从官网下载一个sentinel.conf;

  2)配置:

    1、打开保护模式:protected-mode no  技术图片

    2、定期检测时间(默认30秒):sentinel down-after-milliseconds mymaster 30000

      技术图片

    3、故障转移后,每次向新的节点发起复制操作得从节点数;

      技术图片

    4、故障转移失败,再次转移时间时这个时间得两倍;

      技术图片

    5、设置这节点地址:地址不要127.0.0.1,远程会无法访问;2表示故障判断需要2个哨兵达成一致;

    6、设置主节点密码;

       技术图片

    7、设置哨兵端口:技术图片

  3)启动:

docker run -v /usr/local/docker/redis-sentinel/sentinel.conf:/usr/local/etc/redis/sentinel.conf --name redis-sentinel1 -p 26379:26379 -d redis redis-sentinel /usr/local/etc/redis/sentinel.conf

    //自动恢复需要一定的处理时间,并不是即刻生效;

   4)进入:/usr/local/bin

docker exec -it redis-sentinel1 bash
./redis-cli -p 26379

  5)查看哨兵信息:

    Sentinel masters

    Sentinel master <master name>

    Sentinel slaves <master name>

 

Redis——主从和哨兵机制

标签:连接   工作原理   height   cond   mil   inf   run   div   模式   

原文地址:https://www.cnblogs.com/Tractors/p/11296899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!