Redis 哨兵模式原理


本文摘自PHP中文网,作者Guanhui,侵删。

Redis 哨兵模式原理

哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行、其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

Linux - redis哨兵集群实例

命令整理

官网地址:http://redisdoc.com/

1

2

3

redis-cli info #查看redis数据库信息

redis-cli info replication #查看redis的复制授权信息

redis-cli info sentinel   #查看redis的哨兵信息

配置流程

思路:

redis主从

一主两从的方案

1.环境准备,准备一主两从的redis架构

redis-6379.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

port 6379

daemonize yes

logfile "6379.log"

dbfilename "dump-6379.rdb"

dir "/opt/redis/6379/"

redis-6380.conf

port 6380

daemonize yes

logfile "6380.log"

dbfilename "dump-6380.rdb"

dir "/opt/redis/6380/"

slaveof  127.0.0.1  6379

redis-6381.conf

port 6381

daemonize yes

logfile "6381.log"

dbfilename "dump-6381.rdb"

dir "/opt/redis/6381/"

slaveof  127.0.0.1  6379

2.准备三个数据文件夹

1

mkdir -p  /opt/redis/{6379,6380,6381}

3。分别启动三个数据库

1

2

3

[root@master sbredis]# redis-server redis-6379.conf

[root@master sbredis]# redis-server redis-6380.conf

[root@master sbredis]# redis-server redis-6381.conf

4.检测主从状态

1

2

3

redis-cli -p 6379   info replication

redis-cli -p 6380   info replication

redis-cli -p 6381   info replication

5.准备三个redis哨兵,进行检测主从状态

准备三个哨兵的配置文件

redis-26379.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

// Sentinel节点的端口

port 26379 

dir /var/redis/data/

logfile "26379.log"

// 当前Sentinel节点监控 192.168.119.10:6379 这个主节点

// 2代表判断主节点失败至少需要2个Sentinel节点节点同意

// mymaster是主节点的别名

sentinel monitor mymaster 192.168.119.10 6379 2

//每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达

sentinel down-after-milliseconds mymaster 30000

//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,

原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1

sentinel parallel-syncs mymaster 1

//故障转移超时时间为180000毫秒

sentinel failover-timeout mymaster 180000

redis-26380.conf

port 7000

daemonize yes

dir "/opt/data"

logfile "7000.log"

dbfilename "dump-7000.rdb"

cluster-enabled yes  

cluster-config-file nodes-7000.conf

cluster-require-full-coverage no

redis-26381.conf

三个配置文件,仅仅是端口的不同,通过命令快速生成配置文件

1

2

[root@master sbredis]# sed "s/26379/26380/g"  redis-26379.conf   >  redis-26380.conf 

[root@master sbredis]# sed "s/26379/26381/g"  redis-26379.conf   >  redis-26381.conf

6.分别启动三个哨兵

1

2

3

[root@master sbredis]# redis-sentinel redis-26379.conf

[root@master sbredis]# redis-sentinel redis-26380.conf

[root@master sbredis]# redis-sentinel redis-26381.conf

7.检测哨兵,主从状态

1

redis-cli -p 26379  info sentinel

看到如下信息,就和我一样了

1

2

3

4

5

6

7

8

[root@master sbredis]# redis-cli -p 26379  info  sentinel

Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

sentinel_simulate_failure_flags:0

master0:name=s17ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

8.测验,干掉master redis,是否自动切换

1

2

3

ps -ef|grep redis

    kill 进程

    ..

9.再次启动redis 6379 查看它是否加入 主从集群

1

redis-server redis-6379.conf

推荐教程:《Redis教程》


以上就是Redis 哨兵模式原理的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

如何使用Redis实现排行榜功能

Redis怎么通过命令行批量删除key

Redis内存满了解决方法

Redis是什么东西

Redis单线程为什么效率高

Redis中的scan命令的使用详解

Redis如何修改默认密码

Redis和memcached的优缺点及区别介绍

什么是Redis读写分离

Redis 模糊匹配 searchkeys

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...