122 lines
3.3 KiB
Markdown
122 lines
3.3 KiB
Markdown
---
|
|
title: "Redis Sentinel"
|
|
date: 2019-10-30T11:37:36+08:00
|
|
lastmod: 2019-10-30T11:37:36+08:00
|
|
tags: ["redis", "sentinel", "哨兵"]
|
|
categories: ["database"]
|
|
---
|
|
|
|
## 环境
|
|
主机名 | 地址 | 操作系统 | 初始状态
|
|
---- | ---- | ---- | ----
|
|
sentinel86 | 10.1.14.86 | CentOS7.4 | null
|
|
redis87 | 10.1.14.87 | CentOS7.4 | master
|
|
redis88 | 10.1.14.88 | CentOS7.4 | slave
|
|
redis89 | 10.1.14.89 | CentOS7.4 | slave
|
|
|
|
## 安装 redis
|
|
- 在全部服务器上安装 redis
|
|
```bash
|
|
yum install epel-release
|
|
yum install redis
|
|
```
|
|
|
|
## redis master 配置
|
|
- 在 redis87 上修改 /etc/redis.conf
|
|
```
|
|
bind 0.0.0.0
|
|
```
|
|
|
|
## redis slave 配置
|
|
- 在 redis88 和 redis89 上修改 /etc/redis.conf
|
|
```
|
|
bind 0.0.0.0
|
|
slaveof 10.1.14.87 6379
|
|
```
|
|
|
|
## redis sentinel 配置
|
|
- 在 sentinel86 上创建三个 sentinel 配置文件
|
|
```bash
|
|
cd /etc/
|
|
cp redis-sentinel.conf redis-sentinel-16379.conf
|
|
cp redis-sentinel.conf redis-sentinel-26379.conf
|
|
mv redis-sentinel.conf redis-sentinel-36379.conf
|
|
chown redis.root redis-sentinel-?6379.conf
|
|
```
|
|
- 修改 /etc/redis-sentinel-16379.conf
|
|
```
|
|
bind 0.0.0.0
|
|
port 16379
|
|
dir /var/log/redis/16379
|
|
sentinel monitor mymaster 10.1.14.87 6379 2
|
|
sentinel down-after-milliseconds mymaster 8000
|
|
logfile /var/log/redis/16379/sentinel.log
|
|
```
|
|
- 修改 /etc/redis-sentinel-26379.conf
|
|
```
|
|
bind 0.0.0.0
|
|
port 26379
|
|
dir /var/log/redis/26379
|
|
sentinel monitor mymaster 10.1.14.87 6379 2
|
|
sentinel down-after-milliseconds mymaster 8000
|
|
logfile /var/log/redis/26379/sentinel.log
|
|
```
|
|
- 修改 /etc/redis-sentinel-36379.conf
|
|
```
|
|
bind 0.0.0.0
|
|
port 36379
|
|
dir /var/log/redis/36379
|
|
sentinel monitor mymaster 10.1.14.87 6379 2
|
|
sentinel down-after-milliseconds mymaster 8000
|
|
logfile /var/log/redis/36379/sentinel.log
|
|
```
|
|
- 创建日志目录
|
|
```bash
|
|
cd /var/log/redis/
|
|
mkdir 16379 26379 36379
|
|
chown redis.redis ?6379 -R
|
|
```
|
|
- 创建两个 sentinel service 文件
|
|
```bash
|
|
cd /usr/lib/systemd/system/
|
|
cp redis-sentinel.service redis-sentinel-16379.service
|
|
cp redis-sentinel.service redis-sentinel-26379.service
|
|
mv redis-sentinel.service redis-sentinel-36379.service
|
|
```
|
|
- 修改 /usr/lib/systemd/system/redis-sentinel-16379.service
|
|
```
|
|
ExecStart=/usr/bin/redis-sentinel /etc/redis-sentinel-16379.conf --daemonize no
|
|
ExecStop=/usr/libexec/redis-shutdown redis-sentinel-16379
|
|
```
|
|
- 修改 /usr/lib/systemd/system/redis-sentinel-26379.service
|
|
```
|
|
ExecStart=/usr/bin/redis-sentinel /etc/redis-sentinel-26379.conf --daemonize no
|
|
ExecStop=/usr/libexec/redis-shutdown redis-sentinel-26379
|
|
```
|
|
- 修改 /usr/lib/systemd/system/redis-sentinel-36379.service
|
|
```
|
|
ExecStart=/usr/bin/redis-sentinel /etc/redis-sentinel-36379.conf --daemonize no
|
|
ExecStop=/usr/libexec/redis-shutdown redis-sentinel-36379
|
|
```
|
|
- 更新服务
|
|
```bash
|
|
systemctl daemon-reload
|
|
```
|
|
|
|
## 启动 redis 服务
|
|
- 在 redis87、redis88 和 redis89 上启动 redis 服务
|
|
```bash
|
|
systemctl start redis
|
|
# 查看当前节点主从信息
|
|
redis-cli info replication
|
|
```
|
|
|
|
## 启动 redis sentinel 监控
|
|
- 在 sentinel86 上启动 sentinel 监管程序
|
|
```bash
|
|
systemctl start redis-sentinel-16379
|
|
systemctl start redis-sentinel-26379
|
|
systemctl start redis-sentinel-36379
|
|
```
|
|
|