请选择 进入手机版 | 继续访问电脑版

Redis中国用户组(CRUG)论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 4108|回复: 9

Windows下Redis Sentinel部署(包含Redis Replication)

[复制链接]
  • TA的每日心情
    开心
    2016-6-7 13:14
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    11

    帖子

    158

    积分

    注册会员

    Rank: 2

    积分
    158
    发表于 2016-5-27 13:04:29 | 显示全部楼层 |阅读模式
    本帖最后由 HarLock 于 2016-8-8 11:59 编辑

      网上未发现太多windows下部署Redis Replication和Redis Sentinel的技术贴,在学习过程中总结下
      版权声明:本文为原创文章,转载必须注明出处
    1. 准备
    知识准备:http://www.redis.cn/  
    http://www.redis.io/
    介质:https://github.com/MSOpenTech/redis   (redis官方没有windows版本,微软的某小组搞了个,目前版本3.0x)
    命令行工具:PowerCMD (windows自带的命令行工具不友好,另外,无法在PowerCMD上使用redis自带的客户端工具···知道解决办法的网友留个言

    架构:
      1个主库(master) 端口:6379
      1个从库(slave)    端口:6380
      1个sentinel端         端口:26379
    2.安装Redis
    参考链接:http://blog.csdn.net/wgw335363240/article/details/24469159
    介质解压到你想要的地方(不要有中文目录),比如E:\Programs(别放在C盘 管理员权限麻烦)
    打开PowerCMD,使用cd命令切换目录到E:\Programs,运行 redis-server.exe redis.conf
    默认启动端口6379
    redis启动.jpg

    登录客户端去验证下登录(不能在PowerCMD上使用,使用windows自带CMD)
    切换到E:\Programs,执行redis-cli.exe -h 127.0.0.1 -p 6380
    停止server端服务(直接在PowerCMD中ctl+c或者在刚刚的windows的cmd命令行中输入shutdown)
    停止客户端服务
    3.部署主从/Replication(很像Oracle的dataguard)
    关掉服务,复制整个Redis目录并重命名为Redis-x64-Slave(作为从库)

    复制整个Redis目录并重命名为Redis-x64-Sentinel(待会要用)
    3个库.jpg
    从库(Slave)修改redis.windows.conf文件(用文本编辑器修改)
    port 6379改为port 6380 (如下图

    clipboard.png
    再修改添加
    slaveof 127.0.0.1 6379
    添加主服务器.png

    端口别搞错!
    cd到从库目录,执行redis-server.exe redis.windows.conf
    slave.jpg

    windows自带命令行登录主库:redis-cli.exe -h 127.0.0.1 -p 6379
    执行info Replication查看配置
    127.0.0.1:6379> info Replication
    # Replication
    role:master
    connected_slaves:1
    slave0:ip=127.0.0.1,port=
    master_repl_offset:99
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_o
    repl_backlog_histlen:98

    登录从库
    127.0.0.1:6380> info Replication
    # Replication
    role:slave
    master_host:127.0.0.1
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:8
    master_sync_in_progress:0

    然后可以插入数据测试下同步情况至此,Replication从库部署完毕
    4.部署Sentinel
    进入刚刚复制好的Redis-x64-Sentinel目录
    新建sentinel.conf文件
    编辑添加如下内容
    port 26379
    #master
    sentinel monitor master 127.0.0.1 6379 1
    sentinel down-after-milliseconds master 5000
    sentinel failover-timeout master 180000
    sentinel parallel-syncs master 1

    注意:port 26379为sentinel的端口,别和主库端口搞混!

    参数参考:http://www.redis.cn/topics/sentinel.html

    cd到Redis-x64-Sentinel目录
    启动sentinel服务:redis-server.exe sentinel.conf --sentinel

    sentinel.jpg
    接下来执行故障转移测试
    win自带的CMD登录主库:执行shutdown
    从sentinel端看到的情况

    slave端变为master.jpg
    从库变为master
    再次启动原来的主库
    sentinel端查看情况
    原来的master变为slave
    master变为slave.jpg
    用cmd登录原来的主库和从库
    故障切换后原master变为slave.png
    故障切换后.png

    主动执行主备切换,切换后原来的主库还是主库
    登录sentinel端
    执行:SENTINEL failover mymaster
    主动执行主被切换.jpg
    登录主库查看情况
    6379回归master.jpg
    在sentinel端查看

    从sentinel上看到的切换状态-6379回归主.jpg

    登录主库查看配置

    6379回归master.jpg

    主备切换后,会发现配置文件发生了改变
    在发生主备切换时,sentinel上的sentinel.conf变化.jpg
    参考链接:
    http://mamicode.com/info-detail-401194.html
    http://www.cnblogs.com/Xrinehart/p/3502198.html


    版权声明:本文为原创文章,转载必须注明出处




















  • TA的每日心情
    无聊
    2016-3-28 18:42
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    11

    主题

    15

    帖子

    124

    积分

    注册会员

    Rank: 2

    积分
    124
    发表于 2016-6-1 19:55:40 | 显示全部楼层
    学习了,谢谢楼主
  • TA的每日心情
    开心
    2016-6-7 13:14
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    11

    帖子

    158

    积分

    注册会员

    Rank: 2

    积分
    158
     楼主| 发表于 2016-6-3 09:41:24 | 显示全部楼层
    nosql 发表于 2016-6-1 19:55
    学习了,谢谢楼主

    互相学习

    该用户从未签到

    0

    主题

    2

    帖子

    21

    积分

    新手上路

    Rank: 1

    积分
    21
    发表于 2016-7-20 14:38:04 | 显示全部楼层
    不知道楼主有没有测试过redis-3.2.0.tar.gz,这个版本的sentinel,我在虚拟机里面进行了测试,发觉sentinel没有发挥作用,就是没有进行故障转移。而在redis-3.0.0.tar.gz版本,则不会出现这样的问题,完美的进行了切换;
    port 26579
    sentinel monitor mymaster 192.168.1.153 6379 2
    sentinel auth-pass master redispass
    sentinel down-after-milliseconds master 30000
    sentinel failover-timeout master 900000
    sentinel parallel-syncs master 1
    上面是我的配置文件,一共是三台主机,sentinel.conf 的配置文件是一样的。
    主从配置都很成功,但是sentinel失败,不知道楼主有没有遇到这样的问题

    该用户从未签到

    0

    主题

    2

    帖子

    21

    积分

    新手上路

    Rank: 1

    积分
    21
    发表于 2016-7-20 14:39:41 | 显示全部楼层
    sentinel monitor mymaster 192.168.1.153 6379 2
    这里应该是
    sentinel monitor master 192.168.1.153 6379 2
  • TA的每日心情
    慵懒
    2016-7-28 13:14
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    0

    主题

    5

    帖子

    75

    积分

    注册会员

    Rank: 2

    积分
    75
    发表于 2016-7-20 15:42:34 | 显示全部楼层
    感谢分享 学习一下
  • TA的每日心情
    开心
    2016-6-7 13:14
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    11

    帖子

    158

    积分

    注册会员

    Rank: 2

    积分
    158
     楼主| 发表于 2016-8-8 11:58:14 | 显示全部楼层
    linusxy 发表于 2016-7-20 14:38
    不知道楼主有没有测试过redis-3.2.0.tar.gz,这个版本的sentinel,我在虚拟机里面进行了测试,发觉sentinel ...

    没试过···· 难道这就是传说中的bug??
  • TA的每日心情
    开心
    2016-6-7 13:14
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    2

    主题

    11

    帖子

    158

    积分

    注册会员

    Rank: 2

    积分
    158
     楼主| 发表于 2016-8-8 11:58:33 | 显示全部楼层
    wbw911 发表于 2016-7-20 15:42
    感谢分享 学习一下

    互相学习~
  • TA的每日心情
    开心
    2016-11-4 15:49
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    0

    主题

    5

    帖子

    81

    积分

    注册会员

    Rank: 2

    积分
    81
    发表于 2016-8-19 14:02:12 | 显示全部楼层
    linusxy 发表于 2016-7-20 14:38
    不知道楼主有没有测试过redis-3.2.0.tar.gz,这个版本的sentinel,我在虚拟机里面进行了测试,发觉sentinel ...

    由于Redis3.2版本比3.0新增了protected-mode(默认是yes)配置,导致哨兵无法切换;
    需要将protected-mode设置为no,配置见下:
    protected-mode no

    可以试试!

    该用户从未签到

    1

    主题

    3

    帖子

    26

    积分

    新手上路

    Rank: 1

    积分
    26
    发表于 2016-9-26 18:58:17 | 显示全部楼层
    [2044] 26 Sep 18:56:03.601 # Timeout connecting to the MASTER...
    [2044] 26 Sep 18:56:03.601 * Connecting to MASTER 127.0.0.1:6379
    [2044] 26 Sep 18:56:03.603 * MASTER <-> SLAVE sync started
    [2044] 26 Sep 18:56:03.603 * Non blocking connect for SYNC fired the event.
    [2044] 26 Sep 18:56:03.604 * Master replied to PING, replication can continue...
    请问我设置主从备份的时候总是报这个错误
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    阿里云
    阿里云

    Archiver|手机版|小黑屋|Redis中国用户组 ( 京ICP备15003959号

    GMT+8, 2017-3-24 12:12 , Processed in 0.128796 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表