如何增强Redis主从一致

之前一篇文章讨论了Redis原生如何保证主从一致。

链接: Redis主从一致性(2.8版本前后的差别).

这是Redis为我们提供的方法,但是初次之外我们还可以使用一些工具来增强一致性

半同步复制

不一致性的根本原因是主从同步需要一定的时间,如果此时有读操作落在从服务器上就会造成不一致的情况。那解决这个问题最简单的思路就是使用半同步复制。

半同步复制就是,如果有一个写操作落在主服务器上,那么这个操作必须要等待主从同步完成之后才能返回。这个方法用一种类似于锁的机制,增强一致性,但缺点就是写操作的耗时会加大,降低吞吐量

使用数据库中间件

所有数据库请求都会落在中间件上,然后由中间件进行路由到服务器上。如果一个写操作到达,那么中间件会将其路由到主服务器上,同时记录这次写操作,并设置一个时间,这个时间的设置要以系统完成主从同步的平均时间作为参考,比如说系统主从同步完成时间平均是300ms,那么这个时间设为350ms,在这个时间窗口内,如果有对应的查询操作到达中间件,那么就会把这次查询操作路由到主服务器中,这样接近到达强一致性。

优点:一致性很强

缺点:引入了数据库中间件,成本较高,而且无法完全达到读写分离的目的,增大主服务器压力

使用缓存

数据库中间件的成本较高,使用缓存可以降低成本,思路也差不多。

当写操作落在主服务器上,此时要在缓存中设置对应的key,并且同样根据主从同步平均事件设置一个合适的过期时间,读操作会先落在缓存上,如果缓存命中了,读操作就去主服务器上进行,否则,就继续读写分离,落在从服务器上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值