宕机: 服务器停止服务
如果只有一台redis, 肯定会造成数据丢失。
多台reids或者是Redis集群,服务器宕机还有办法。
从的redis宕机怎么解决
配置主从复制的时候才配置从的redis, 从的会从主的redis中读取主的redis的操作日志,来达到主从复制。
只要把从的redis重新启动,再和主的进行连接就可以
如果从redis上面做数据的持久化,可以直接连接到主的上面,只要实现增量备份
主的redis宕机怎么解决
要先确认是否做持久化,若没有做持久化,重新启动主的redis就会造成数据丢失。
第一步,在从数据库中执行SLAVEOF NO ONE命令,断开主从关系并且提升为主库继续服务;
第二步,将主库重新启动后,执行SLAVEOF命令,将其设置为其他库的从库,这时数据就能更新回来;
可以使用Redis 提供哨兵 机制来简化上面的操作。
哨兵机制的原理:
Redis提供了sentinel(哨兵)机制通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决。
每个sentinel会向其它sentinal、master、slave定时发送消息,以确认对方是否“活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的“主观认为宕机” Subjective Down,简称SDOWN)。
若"哨兵群"中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称ODOWN),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。
哨兵的配置:可以参考https://blog.csdn.net/shouhuzhezhishen/article/details/69221517