Redis——哨兵机制

哨兵机制

为了解决主从复制架构中,主机宕机后,从机无法进行写操作而引入的新的机制——哨兵。在主机宕机后会在从机中选出一个主机,当宕机的主机重新运行时,将会以从机的身份运行。

哨兵架构图

哨兵架构.png

实现步骤

首先得搭建主从复制架构。
其次在Master节点的机器中新建一个sentinel.conf文件

[root@redis20 bin]# vim sentinel.conf
[root@redis20 bin]# ll
总用量 21932
-rw-r--r--. 1 root root     196 8月   9 21:31 dump.rdb
-rwxr-xr-x. 1 root root 2452112 8月   9 12:11 redis-benchmark
-rwxr-xr-x. 1 root root 5769552 8月   9 12:11 redis-check-aof
-rwxr-xr-x. 1 root root 5769552 8月   9 12:11 redis-check-rdb
-rwxr-xr-x. 1 root root 2618136 8月   9 12:11 redis-cli
-rw-r--r--. 1 root root   58767 8月   9 12:57 redis.conf
lrwxrwxrwx. 1 root root      12 8月   9 12:11 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5769552 8月   9 12:11 redis-server
-rw-r--r--. 1 root root      42 8月   9 22:14 sentinel.conf

最后配置哨兵

#在sentinel.conf文件中输入
sentinel monitor 被监控数据库名字 127.0.0.1 主机端口号 1
#最后的数字1代表的是主机挂掉后slave投票看让谁接替成为主机,得票数多则成为主机

启动测试

启动哨兵.png

当Master宕机时
Master宕机.png

通过倒数第四行的+switch-master r20 192.168.48.20 6379 192.168.48.21 6379可以得知新的Master是ip地址为192.168.48.21的机器。查看Redis x21机器的信息。
从机变主机.png

重新启动原先的Master机器,查看当前状态。
原先的主机现在变为了从机.png

新的主从架构.png

Springboot操作哨兵模式

编写yml配置文件

spring:
  redis:
    sentinel:
      #sentinel.conf中自己起的数据库名称
      master: Master20
      #连接的是多个哨兵节点
      nodes: 192.168.48.20:26379

在哨兵的配置文件中加上一行bind 0.0.0.0开启远程连接。

sentinel myid 2c935c7c6ddce6a391558c495998e341993a4032
# Generated by CONFIG REWRITE
bind 0.0.0.0
port 26379
dir "/usr/local/bin"
sentinel monitor Master20 192.168.48.21 6379 1
sentinel config-epoch Master20 1
sentinel leader-epoch Master20 1
sentinel known-slave Master20 192.168.48.22 6379
sentinel known-slave Master20 192.168.48.20 6379
sentinel current-epoch 1

测试:

redisTemplate.opsForValue().set("grade","80");

测试哨兵.png

连接成功!

总结

\color{red}{哨兵模式就是能够实现自动故障转移的主从架构!}
但是哨兵模式依旧是单节点的Master,当数据访问量过大时,无法解决并发问题、内存和磁盘大小问题

参考资料

https://www.bilibili.com/video/BV1J4411x7U1?from=search&seid=1483198651093821370
https://www.bilibili.com/video/BV1jD4y1Q7tU?t=23&p=29

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。