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

Redis中国用户组(CRUG)论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 760|回复: 4

windows环境下redis高可用之主从复制与哨兵监控

[复制链接]

该用户从未签到

1

主题

4

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
发表于 2017-4-7 16:20:16 | 显示全部楼层 |阅读模式
本帖最后由 hejun 于 2017-4-7 16:17 编辑

windows环境下redis高可用之主从复制与哨兵监控

1.安装包准备
https://github.com/MSOpenTech/redis/releases下载最新windows版本的redis安装包和源码包,现在最新版本是3.2.1.00
1.png
本文以redis3.2.100版本为例
2.redis安装与配置
解压redis-x64-3.2.100.zip文件到D:\Program\redis\redis-3.2\redis-3.2.100目录下,如下图
2.png
D:\Program\redis\redis-3.2\redis-3.2.100目录下新建6379目录,并把D:\Program\redis\redis-3.2\redis-3.2.100目录下的redis.windows.conf配置文件复制到D:\Program\redis\redis-3.2\redis-3.2.100\6379目录下,如下图
3.png
打开D:\Program\redis\redis-3.2\redis-3.2.100\6379\redis.windows.conf文件,修改配置参数如下

#端口号

port 6379

#密码

requirepass hejun

#日志文件路径

logfile"E:/temp/logs/redis/redis-3.2/redis-6379.log"

#数据文件存放目录

dir"E:/ProgramData/redis-3.2/6379/"

#最大占用内存

maxmemory 256mb

#开启AOF模式

appendonly yes

3.redis安装与配置
D:\Program\redis\redis-3.2\redis-3.2.100目录下新建6380目录,并把D:\Program\redis\redis-3.2\redis-3.2.100目录下的redis.windows.conf配置文件复制到D:\Program\redis\redis-3.2\redis-3.2.100\6380目录下,如下图
4.png
打开D:\Program\redis\redis-3.2\redis-3.2.100\6380\redis.windows.conf文件,修改配置参数如下

#端口号

port 6380

#密码

requirepass hejun

#日志文件路径

logfile"E:/temp/logs/redis/redis-3.2/redis-6380.log"

#数据文件存放目录

dir"E:/ProgramData/redis-3.2/6380/"

#最大占用内存

maxmemory 256mb

#开启AOF模式

appendonly yes

#设置主redisIP和端口号

slaveof127.0.0.1 6379

#设置主redis的访问密码

masterauth hejun


D:\Program\redis\redis-3.2\redis-3.2.100目录下新建6381目录,并把D:\Program\redis\redis-3.2\redis-3.2.100目录下的redis.windows.conf配置文件复制到D:\Program\redis\redis-3.2\redis-3.2.100\6381目录下,如下图
5.png
打开D:\Program\redis\redis-3.2\redis-3.2.100\6381\redis.windows.conf文件,修改配置参数如下

#端口号

port 6381

#密码

requirepass hejun

#日志文件路径

logfile"E:/temp/logs/redis/redis-3.2/redis-6381.log"

#数据文件存放目录

dir"E:/ProgramData/redis-3.2/6381/"

#最大占用内存

maxmemory 256mb

#开启AOF模式

appendonly yes

#设置主redisIP和端口号

slaveof127.0.0.1 6379

#设置主redis的访问密码

masterauth hejun


4.测试主从复制
4.1启动主redis服务器

windows命令行窗口输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-server.exe .\6379\redis.windows.conf

启动主redis服务器
6.png
查看日志文件E:/temp/logs/redis/redis-3.2/redis-6379.log内容如下
7.png
redis服务器启动成功


4.2启动从redis服务器

开启一个新的windows命令行窗口,输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-server.exe.\6380\redis.windows.conf


启动从redis服务器6380
8.png
查看日志文件E:/temp/logs/redis/redis-3.2/redis-6380.log内容如下
9.png
redis服务器6380启动成功


开启一个新的windows命令行窗口,输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-server.exe.\6381\redis.windows.conf


启动从redis服务器6381
10.png
查看日志文件E:/temp/logs/redis/redis-3.2/redis-6381.log内容如下
11.png
redis服务器6381启动成功

4.3测试主从复制
开启一个新的windows命令行窗口,输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-cli.exe -h127.0.0.1 -p 6379

auth hejun


连接到主redis服务器,如下图
12.png
输入info replication命令,显示从服务器63806381成功关联到主服务器6379。如下图
13.png
在主服务器6379上执行set company_name xmhd命令,添加一个数据。执行get company_name命令显示添加成功,如下图
14.png
输入quit返回windows命令行。输入以下命令

redis-cli.exe -h127.0.0.1 -p 6380

auth hejun


连接到从redis服务器,执行keys *命令,显示从redis服务器上存储的数据的key已经跟主服务器保持一致了。执行get company_name命令显示结果跟主服务器存入的内容也一样。说明redis主从复制配置成功。效果如下图
15.png
5.配置哨兵监控
D:\Program\redis\redis-3.2\redis-3.2.100目录下新建26379目录,

并在D:\Program\redis\redis-3.2\redis-3.2.100\26379目录下添加sentinel.conf配置文件,如下图
16.png
打开D:\Program\redis\redis-3.2\redis-3.2.100\26379\sentinel.conf文件,修改配置参数如下

port 26379

#master01

sentinel monitormaster01 127.0.0.1 6379 1

sentineldown-after-milliseconds master01 60000

sentinel auth-pass master01 hejun

sentinel failover-timeout master01 180000

sentinel parallel-syncs master01 1


dir"E:\\ProgramData\\redis-3.2\\26379"

logfile"E:/temp/logs/redis/redis-3.2/sentinel-26379.log"



6.测试哨兵监控
6.1启动哨兵监控
开启一个新的windows命令行窗口,输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-server.exe.\2639\sentinel.conf --sentinel


启动哨兵监控程序,如下图
17.png
打开E:/temp/logs/redis/redis-3.2/sentinel-26379.log日志文件,查看内容如下
18.png
哨兵监控程序启动正常,并且自动识别到主服务器127.0.0.1 6379和从服务器127.0.0.1 6380127.0.0.1 6381


windows命令行窗口,输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-cli.exe -h 127.0.0.1 -p 26379 sentinel masters


查看主服务器信息
19.png
输入redis-cli.exe -h 127.0.0.1 -p 26379 sentinel slaves master01命令,查看从服务器信息
20.png
21.png
6.2测试故障切换
关掉6379主服务器,在windows命令行窗口,输入以下命令

cd D:\Program\redis\redis-3.2\redis-3.2.100\

redis-cli.exe -h 127.0.0.1 -p 26379 sentinel masters


查看主服务器信息
22.png
显示主服务器由原来的6379变为6380


输入redis-cli.exe -h 127.0.0.1 -p 26379 sentinel slaves master01命令,查看从服务器信息
23.png
24.png
显示从服务器由原来的63806381变为63796381


打开D:\Program\redis\redis-3.2\redis-3.2.100\26379\sentinel.conf配置文件,如下图
25.png
配置文件内容发生变化:

sentinel monitor master01 127.0.0.1 6379 1变成sentinel monitor master01 127.0.0.16380 1

sentinel known-slave master01 127.0.0.1 6380

sentinel known-slave master01 127.0.0.1 6381

变成

sentinel known-slave master01 127.0.0.1 6379

sentinel known-slave master01 127.0.0.1 6381


打开E:/temp/logs/redis/redis-3.2/sentinel-26379.log日志文件,查看文件内容如下图
26.png
也显示主服务器从127.0.0.1 6379切换到127.0.0.1 6380


当重新启动127.0.0.1 6379服务器以后,主服务器还是127.0.0.1 6380,这个不会自动再切换回去。这点请注意。

该用户从未签到

0

主题

1

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2017-4-8 19:34:46 | 显示全部楼层
你好,请问一下,那个启动哨兵的时候log里报[6660] 07 Apr 22:39:39.789 # Creating Server TCP listening socket *:26379: listen: Unknown error的错误你碰到过吗?

该用户从未签到

1

主题

4

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
 楼主| 发表于 2017-4-10 11:43:52 | 显示全部楼层
fzh 发表于 2017-4-8 19:34
你好,请问一下,那个启动哨兵的时候log里报[6660] 07 Apr 22:39:39.789 # Creating Server TCP listening  ...

没有遇到啊,你是怎么启动的?
http://blog.csdn.net/zhangjun965/article/details/52033366

该用户从未签到

0

主题

1

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2017-4-10 16:32:47 | 显示全部楼层
sentinel monitor master01 127.0.0.1 6379 1
把1改为 2  或者更多
启用 哨兵 集群,测试一下,我这里只能判断master的status为sdown,无法转为odown。

该用户从未签到

1

主题

4

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
 楼主| 发表于 2017-4-14 15:34:10 | 显示全部楼层
本帖最后由 hejun 于 2017-4-14 15:38 编辑
lucheng 发表于 2017-4-10 16:32
sentinel monitor master01 127.0.0.1 6379 1
把1改为 2  或者更多
启用 哨兵 集群,测试一下,我这里只能 ...

改为sentinel monitor master01 127.0.0.1 6379 2要开启三个哨兵,测试可以的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

阿里云
阿里云

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

GMT+8, 2017-11-21 01:23 , Processed in 0.137017 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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