一、Redis服务部署文件结构:
Redis-sentinel-*:是3个哨兵服务
Redis-master-6379:Redis主服务器
Redis-Slave-6380:Redis从服务器
Redis-Slave-6381:Redis从服务器
二、主从配置
1、Master配置:
默认端口6379,不作修改
2、Slave配置:
分别把6380及6381从服务端口port修改为
port 6380
port 6381
从服务器都加上一行:
slaveof 127.0.0.1 6379
至此,主从配置完成!
三、哨兵配置
#当前Sentinel服务运行的端口
port 16379
# 哨兵监听的主服务器
sentinel monitor redismaster 127.0.0.1 6379 2
# 3s内redismaster无响应,则认为redismaster宕机了
sentinel down-after-milliseconds redismaster 3000
#如果10秒后,redismaster仍没启动过来,则启动failover
sentinel failover-timeout redismaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs redismaster 1
参数port三个哨兵服务分别修改为16379/26379/36379
不同Sentinel判断客观下线的条件可以不同。
四、服务安装
三个Redis服务及 三个哨兵安装目录下创建InstallServer.bat批处理文件,内容分别如下:
(1)6379服务
@echo off
redis-server --service-install redis.windows.conf --loglevel verbose --service-name Redis6379
@pause
(2)6380服务
@echo off
redis-server --service-install redis.windows.conf --loglevel verbose --service-name Redis6380
@pause
(3)6381服务
@echo off
redis-server --service-install redis.windows.conf --loglevel verbose --service-name Redis6381
@pause
(4)16379哨兵
@echo off
redis-server --service-install redis.windows.conf --sentinel --service-name RedisSentinel16379
@pause
(5)26379哨兵
@echo off
redis-server --service-install redis.windows.conf --sentinel --service-name RedisSentinel26379
@pause
(6)36379哨兵
@echo off
redis-server --service-install redis.windows.conf --sentinel --service-name RedisSentinel36379
@pause
至此,主从哨兵完成!
分别执行批处理文件,就可以在任务管理器“服务”中查到了我们安装的服务,如下
现在可以验证Redis的高可靠特性了。
主从部署实现了redis数据读写分离,用户可以通过主服务写redis命令,而通过从服务读取数据库键值对信息。
Sentinel哨兵部署保证了Redis的高可靠高可用,当哨兵检测到Redis主服务器下线时,会重新从在线的Redis从服务器中选举同步了最新数据的节点作为新的Master。