Sentinel(哨兵)是Redis 的高可用性解决方案( 二 )
我们可以看到 , 现在的redis 是一个从服务的角色 , 连接着6380的服务 。
2、在服务启动后设置我们修改6382端口的服务器配置文件之后 , 启动服务
文章插图
进入客户端 , 查看当前服务器的状态:
# Replicationrole:masterconnected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0
我们可以看到 , 当前服务器的状态是作为一个主服务的角色在运行 , 我们接下来修改他的状态:
127.0.0.1:6382> slaveof 127.0.0.1 6380//修改后状态# Replicationrole:slavemaster_host:127.0.0.1master_port:6380master_link_status:upmaster_last_io_seconds_ago:1master_sync_in_progress:0slave_repl_offset:617slave_priority:100slave_read_only:1connected_slaves:0master_repl_offset:0repl_backlog_active:0repl_backlog_size:1048576repl_backlog_first_byte_offset:0repl_backlog_histlen:0
3、总结我们先看一下目前master 的状态:
# Replicationrole:masterconnected_slaves:2slave0:ip=127.0.0.1,port=6381,state=online,offset=785,lag=0slave1:ip=127.0.0.1,port=6382,state=online,offset=785,lag=0master_repl_offset:785repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:2repl_backlog_histlen:784
我们可以可以看到 , 两个从服务已经在连着主服务器 , 上面两种配置的区别在于 , 当salve 断线重连之后 ,
如果我们是修改类配置文件 , 重连之后会自己链接上去master , 并且同步master 上面的数据 , 如果我们是手动连接上去的主服务器 , 重连之后 , 从服务器会读取自己本地的 rdb 回复数据 , 而不会去自动链接主服务
我们如果需要设置读写分离 , 只需要在主服务器中设置:
# Note: read only slaves are not designed to be exposed to untrusted clients# on the internet. It's just a protection layer against misuse of the instance.# Still a read only slave exports by default all the administrative commands# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve# security of read only slaves using 'rename-command' to shadow all the# administrative / dangerous commands.slave-read-only yes
3、Sentinel 哨兵1、配置端口在sentinel.conf 配置文件中 ,我们可以找到port 属性 , 这里是用来设置sentinel 的端口 , 一般情况下 , 至少会需要三个哨兵对redis 进行监控 , 我们可以通过修改端口启动多个sentinel 服务 。
# port # The port that this sentinel instance will run onport 26379
2、配置主服务器的ip 和端口我们把监听的端口修改成6380 , 并且加上权值为2 , 这里的权值 , 是用来计算我们需要将哪一台服务器升级升主服务器
# sentinel monitor
3、启动Sentinel/sentinel$ redis-sentinel sentinel.conf
文章插图
sentinel 启动之后 , 就会监视到现在有一个主服务器 , 两个从服务器
当我们把其中一个从服务器器关闭之后 , 我们可以看到日志:
10894:X 30 Dec 16:27:03.670 # +sdown slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
日志表示 , 6381这个从服务器已经从主服务器中脱离了出来 , 我们重新把6381 接回去 。
10894:X 30 Dec 16:28:43.288 * +reboot slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 638010894:X 30 Dec 16:28:43.365 # -sdown slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6380
4、关闭Master我们手动关闭Master 之后 , sentinel 在监听master 确实是断线了之后 , 将会开始计算权值 , 然后重新分配主服务器
文章插图
我们可以看到 , 6380主服务器断了之后 , sentinel 帮我们选了6382作为新的主服务器
我们进到6382的客户端 , 查看他的状态:
- 对手|一加9Pro全面曝光,或是小米11最大对手
- 行业|现在行业内客服托管费用是怎么算的
- 王兴称美团优选目前重点是建设核心能力;苏宁旗下云网万店融资60亿元;阿里小米拟增资居然之家|8点1氪 | 美团
- 手机基带|为了5G降低4G网速?中国移动回应来了:罪魁祸首不是运营商
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 互联网|苏宁跳出“零售商”重组互联网平台业务 融资60亿只是第一步
- 体验|闭上眼睛点外卖是什么感觉?时隔一年再次体验,进步令人欣慰
- 再次|华为Mate40Pro干瞪眼?P50再次曝光,这次是真香!
- 当初|这是我的第一部华为手机,当初花6799元买的,现在“一文不值”?
- 无国界|嘴上说着支持华为,却为苹果贡献了2000亿!还真是科技无国界啊?