您的位置:首页 > 数据库 > Redis

redis双机部署之Windows系统下哨兵模式的搭建

2018-07-23 17:36 567 查看

Sentinel(哨兵)是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。

1. 准备
知识准备:http://www.redis.cn/ http://www.redis.io/

介质:https://github.com/MSOpenTech/redis   (redis官方没有windows版本,微软的某小组搞了个,目前版本3.0x)
架构:
  1个主库(master) 端口:6379
  1个从库(slave)    端口:6380
  1个sentinel端         端口:26379 
2.安装Redis
参考链接:https://www.geek-share.com/detail/2609406022.html
介质解压到你想要的地方(不要有中文目录),比如E:\Programs(别放在C盘 管理员权限麻烦)
打开CMD,使用cd命令切换目录到E:\Programs,运行 redis-server.exe redis.conf 
默认启动端口6379
 

切换到E:\Programs,执行redis-cli.exe -h 127.0.0.1 -p 6379   这是连接客户端的方式,可以进行 set KEY   get KEY  操作
停止server端服务(直接在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端查看

 

登录主库查看配置

 

 

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

5.备注

redis的哨兵模式已经很稳定了,本人已经在项目实际用过了,总体不错,以上版本是Windows 的, linux 版本的也是一样的,在生产环境如果是双机的话,主从两个redis和两个哨兵是最合适的方案。

参考文档:

http://mamicode.com/info-detail-401194.html

https://www.geek-share.com/detail/2599653741.html

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: