1. 准备
知识准备:http://www.redis.cn/
介质: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.youkuaiyun.com/wgw335363240/article/details/24469159
介质解压到你想要的地方(不要有中文目录),比如E:\Programs(别放在C盘 管理员权限麻烦)
打开PowerCMD,使用cd命令切换目录到E:\Programs,运行 redis-server.exe redis.conf
默认启动端口6379
登录客户端去验证下登录(不能在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(待会要用)
从库(Slave)修改redis.windows.conf文件(用文本编辑器修改)
port 6379改为port 6380 (如下图)
再修改添加
slaveof 127.0.0.1 6379
端口别搞错!
cd到从库目录,执行redis-server.exe redis.windows.conf
用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
接下来执行故障转移测试
win自带的CMD登录主库:执行shutdown
从sentinel端看到的情况
从库变为master
再次启动原来的主库
sentinel端查看情况
原来的master变为slave
用cmd登录原来的主库和从库
主动执行主备切换,切换后原来的主库还是主库
登录sentinel端
执行:SENTINEL failover mymaster
登录主库查看情况
在sentinel端查看
登录主库查看配置
知识准备:http://www.redis.cn/
介质: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.youkuaiyun.com/wgw335363240/article/details/24469159
介质解压到你想要的地方(不要有中文目录),比如E:\Programs(别放在C盘 管理员权限麻烦)
打开PowerCMD,使用cd命令切换目录到E:\Programs,运行 redis-server.exe redis.conf
默认启动端口6379

登录客户端去验证下登录(不能在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(待会要用)

从库(Slave)修改redis.windows.conf文件(用文本编辑器修改)
port 6379改为port 6380 (如下图)

再修改添加
slaveof 127.0.0.1 6379

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

用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

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

从库变为master
再次启动原来的主库
sentinel端查看情况
原来的master变为slave

用cmd登录原来的主库和从库


主动执行主备切换,切换后原来的主库还是主库
登录sentinel端
执行:SENTINEL failover mymaster

登录主库查看情况

在sentinel端查看

登录主库查看配置

主备切换后,会发现配置文件发生了改变