Windows10下Redis5.0.14 搭建哨兵环境
Windows10下Redis5.0.14 搭建哨兵环境
大家好,我是闲者,今天记录下redis哨兵模式的配置。Redis支持多种不同的数据结构和模式,以满足不同的使用场景。部署环境:
服务环境:windows10 单机部署
Redis版本:Redis-x64-5.0.14.1
一. 配置主从模式
1. 下载 Redis
官网下载为了保证 Redis 的高可用性,可以采用 Redis 实例主从配置的方式,但主从配置方式天然存在主服务单机故障就导致整个系统瘫痪的致命问题。
2. 配置 Redis 主从
2.1 一主两从
redis-6379.windows.conf
bind 0.0.0.0
port 6379
requirepass 123456
redis-6380.windows.conf
bind 0.0.0.0
port 6380
requirepass 123456
masterauth 123456
replicaof 127.0.0.1 6379
redis-6381.windows.conf
bind 0.0.0.0
port 6381
requirepass 123456
masterauth 123456
replicaof 127.0.0.1 6379
2.2 启动
在各自配置目录下启动。
redis-server.exe redis-6379.windows.conf
redis-server.exe redis-6380.windows.conf
redis-server.exe redis-6381.windows.conf
2.3 测试
redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=98,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=98,lag=0
master_replid:677245c1292f2244597f22a12c85730f236fa707
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:98
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:98
二. 配置 Redis 哨兵
为了解决主从配置缺陷这个问题,Redis2.4 开始支持 哨兵机制,Redis 2.8 中正式引入。
哨兵机制 的思想很简单,再 Redis 运行服务外,专门运行一个哨兵服务,监测主服务是否发生故障,一旦发生,从服务自动升级为主服务,如果主服务恢复了,自动变为从服务。
主服务也可以配置一个哨兵服务,如果挂掉,重启后可以充当为一个从服务哨兵。
1.创建三个哨兵文件
创建三个配置文件
sentinel-26379.windows.conf
bind 127.0.0.1
# 当前Sentinel服务运行的端口
port 26379
protected-mode no
logfile "sentinel-26379.log"
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel-26380.windows.conf
bind 127.0.0.1
# 当前Sentinel服务运行的端口
port 26380
protected-mode no
logfile "sentinel-26380.log"
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
sentinel-26381.windows.conf
bind 127.0.0.1
# 当前Sentinel服务运行的端口
port 26381
protected-mode no
logfile "sentinel-26381.log"
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
注意:
1. 配置 logfile "sentinel-26381.log" 记录哨兵启动日志,这样可以迅速定位问题
2. 在配置sentinel auth-pass mymaster 123456 密码时,必须放在sentinel monitor mymaster 127.0.0.1 6379 2之后,否则会报找不到mymaster服务,因为没有定义,得先定义名称了,才能找到。
2. 启动哨兵
redis-server.exe sentinel-26379.windows.conf --sentinel
redis-server sentinel-26380.windows.conf --sentinel
redis-server sentinel-26381.windows.conf --sentinel
3. 验证
验证是否成功,看到最后 status=ok 说明成功了
127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
4. 演示故障自动切换
关掉主节点 6379,等一会,就会发现哨兵切换了主节点,重新启动 6379 节点,它就变成了从节点了
redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:56440
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:8f282577c2e4ddeb9794f88757e5dad7870e5e6d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:56440
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:55487
repl_backlog_histlen:954
更新:2023-11-20
评论区