redis---主从复制、哨兵模式

我们使用redis做缓存来提高系统性能,降低对数据库的访问,那么只使用一个是不够的,万一出现故障之后,所有的压力就会回到数据库,照成崩盘,因此我们可以使用多个redis来做缓存,并且读写分离来提高性能

 

配置其实十分简单,只要启动所有的redis,配置从机就好了,不用配置主机:

      命令: slaveof 主库ip  主库端口

注意:在我们设置好主从后,从机将不发进行写操作 ,会报错

配置好后,无论配置前主机是否有数据,从机都会有主机的所用数据(通过copy  rdb文件),之后的每个操作发送操作指令;

复制原理:在slave 启动成功连接 到master后会发送一个sync命令,master收到命令后,启动后台的存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕之后,而slave服务在接受到数据库文件数据后,将其存盘并加载到内存中。
 

在这里,我们如果主机故障了,我们需要手动的去设置从机,我们总不能让人一天24小时看着吧,为了解决这个问题,有了哨兵模式;

**哨兵模式:(就是手动设置的改进版,从剩余的从机中选一个主机),主机回来后,变成slave;

后台监控主机是否故障,在文件下新建一个sentinel.conf文件,linux 下命令为touch  sentinel.conf,

文件内容

 Sentinel monitor host6379 127.0.0.1 6379 1

解释:1表示主机挂了后让slave投票,

可以存在多个哨兵

哨兵模式监听原理:

每个哨兵会向其它哨兵(、master、slave定时发送消息ping,以确认对方是否”活”着,如果发现对方在指定时间(可配置)内未回应,则认为死亡,如果多数哨兵都发现某个对象死亡,则使用算法,选出主机

使用命令

Redis-sentinel /sentinal.conf的路径启动哨兵模式

缺点:写操作在master上,主机多或者繁忙的时候有延迟

 

猜你喜欢

转载自blog.csdn.net/qq_39512671/article/details/81632718