redis 高可用方案之主从复制及其哨兵模式
近期学习了下,看了些文档,记录一下!!!
1.主从复制是啥?
(http://www.redis.cn/topics/replication.html)
redis一台服务器种的数据复制到另一台种,2台服务器种的数据一模一样;
一台主服务器能有0个或多个从服务器,一个从服务器只能属于一台主服务器。
一般情况下,主服务器担任写入职责,从服务器担任读取职责,就是读写分离的意思。
配置主从复制的好处?
1.变相的数据持久化,因为从库一直是异步同步主库的写入数据。
2.可以提供故障恢复,主库挂了,拿着从库的rdb恢复就完事了。
3.读写分离,减少单实例的压力
4.提供标题说到的哨兵模式的基础。
主从复制原理:
Slave 启动成功连接到 master 后会发送一个 sync 同步命令,Master 接到命令后,会启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕后,master 将传送整个数据文件到 salve,并完成一次完整的同步。
全量复制:salve服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:master继续将新的所有收集到的修改命令依次传递给salve,完成同步
2.哨兵模式是啥?
(http://www.redis.cn/topics/sentinel.html)
基于1中的主从配置。
1.当主服务器宕机后,我们人为的发现了,再任意从服务执行SLAVEOF NO ONE可以手动将从服务提升为主服务器。
2.当主服务器宕机后,并且我们并没有及时发现,这时候就可能会出现数据丢失或程序无法运行。此时,redis 的哨兵模式就派上用场了,可以用它来做 redis 的高可用。(哨兵干了人该干的活)
功能作用:
-
监控(monitoring):Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。 -
提醒(Notifation):当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。 -
自动故障转移(Automatic failover):当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作,它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

浙公网安备 33010602011771号