按关键词阅读:
安装和部署下面将以3个Sentinel节点、1个主节点、2个从节点组成一个Redis
Sentinel进行说明 。
文章插图部署流程Redis Sentinel中Redis数据节点没有做任何特殊配置 , 按照常规方法启动就可以 。 3个Sentinel节点的部署方法是完全一致的(端口不同) , 下面以sentinel-1节点的部署为例子进行说明 。
配置Sentinel节点// redis-sentinel-26379.conf
port 26379
daemonize yes
logfile "26379.log"
dir /opt/soft/redis/data
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
Sentinel节点的默认端口是26379 ,sentinel monitor mymaster 127.0.0.1 6379 2配置代表sentinel-1节点需要监控127.0.0.1:6379这个主节点 , 2代表判断主节点失败至少需要2个Sentinel节点同意 , mymaster是主节点的别名, 其余Sentinel配置将在以后进行详细说明 。
启动Sentinel节点Sentinel节点的启动方法有两种:
1.使用redis-sentinel命令:
redis-sentinel redis-sentinel-26379.conf
2.使用redis-server命令加--sentinel参数:
redis-server redis-sentinel-26379.conf --sentinel
两种方法本质上是一样的 。
确认Sentinel节点本质上是一个特殊的Redis节点 , 所以也可以通过info命令来查询它的相关信息 , 从下面info的Sentinel片段来看 , Sentinel节点找到了主节点127.0.0.1:6379 , 发现了它的两个从节点 , 同时发现Redis Sentinel一共有3个Sentinel节点 。 这里只需要了解Sentinel节点能够彼此感知到对方 , 同时能够感知到Redis数据节点就可以了:
$ redis-cli -h 127.0.0.1 -p 26379 info Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
当三个Sentinel节点都启动后 , 整个拓扑结构如图所示 。 至此Redis Sentinel已经搭建起来了 , 整体上还是比较容易的 , 但是有两点需要强调一下:
- 生产环境中建议Redis Sentinel的所有节点应该分布在不同的物理机上 。
- Redis Sentinel中的数据节点和普通的Redis数据节点在配置上没有任何区别 , 只不过是添加了一些Sentinel节点对它们进行监控 。
文章插图配置优化本节将对每个配置的使用和优化进行详细介绍 。 Redis安装目录下有一个sentinel.conf , 是默认的Sentinel节点配置文件 , 下面就以它作为例子进行说明 。
配置说明和优化port 26379
【「Redis-多机功能」Sentinel】dir /opt/soft/redis/data
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel auth-pass
sentinel notification-script
sentinel client-reconfig-script
(1)sentinel monitor格式:
sentinel monitor
本配置说明Sentinel节点要监控的是一个名字叫做
(2)sentinel down-after-milliseconds格式:
sentinel down-after-milliseconds
每个Sentinel节点都要通过定期发送ping命令来判断Redis数据节点和其余Sentinel节点是否可达 , 如果超过了down-after-milliseconds配置的时间且没有有效的回复 , 则判定节点不可达 , (单位为毫秒)就是超时时间 。 这个配置是对节点失败判定的重要依据 。
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111T31c12020.html
标题:「Redis-多机功能」Sentinel( 二 )