redis配置实践二:一文读懂redis主从复制+sentinel哨兵监控

本文介绍了Redis的主从复制配置,包括主从连接机制及故障处理。在无Sentinel的情况下,当主服务器挂掉,需人工指定新主。然后详细讲解了Sentinel哨兵模式,如何配置哨兵监控主从,并在主服务器下线时自动选举新主,实现高可用性。
摘要由CSDN通过智能技术生成

什么是主从复制

在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本。

这个系统的运行依靠三个主要的机制:

  1. 当一个 master 实例和一个 slave 实例连接正常时, master 会发送一连串的命令流来保持对 slave 的更新,以便于将自身数据集的改变复制给 slave,包括客户端的写入、key 的过期或被逐出等等。

  2. 当 master 和 slave 之间的连接断开之后,因为网络问题、或者是主从意识到连接超时, slave 重新连接上 master 并会尝试进行部分重同步:这意味着它会尝试只获取在断开连接期间内丢失的命令流。

  3. 当无法进行部分重同步时, slave 会请求进行全量重同步。这会涉及到一个更复杂的过程,例如 master 需要创建所有数据的快照,将之发送给 slave ,之后在数据集更改时持续发送命令流到 slave 。

小结:

简单来讲,就是一个主redis服务器,配置几个全量的从属服务器,实现服务的高可用,但无法实现扩容操作。也就是在AKF的X轴上扩展,不了解AKF的小伙伴可以补一下AKF的xyz三轴架构基础哦~(无基础不影响本文理解)。

无sentinel(哨兵)主从配置

无哨兵配置的主从模式,当master(主)挂掉后,需要人工手动下线master,并且人工指定新的master。

- Master(主)配置

无需对配置文件做任何更改,直接启动就行,这里使用56379这个端口作为master的端口

- slave(从)配置
...
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 56480

# TCP listen() backlog.
...
# replicaof <masterip> <masterport>
replicaof 127.0.0.1 56379
# 这里是配置从服务器认56379为主
...
# security of read only replicas using 'rename-command' to shadow all the
# administrative / dangerous commands.
replica-read-only yes
# 开启只读模式,实现读写分离,写全部在master实现

再设置一台56481为从服务器。

启动服务器

启动主服务器
test redis-server 56379.conf 
启动从属服务器
test redis-server 56479.conf
➜  test redis-server 56480.conf

连接服务器测试

主服务器
# 连接主服务器test redis-cli -p 56379
# 新建数据
127.0.0.1:56379> set k1 aaa
OK
127.0.0.1:56379> set k2 aaa
OK
127.0.0.1:56379> keys *
1) "k1"
2) "k2"
127.0.0.1:56379> 
从服务器
# 连接从属服务器56479test redis-cli -p 56479
# 查看数据,发现同步一致
127.0.0.1:56479> keys *
1) "k2"
2) "k1"
127.0.0.1:56479> get k1
"aaa"
# 因为从属服务器开启了只读模式,所以无法插入数据
127.0.0.1:5647
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值