1.前提条件
服务器:1台centos7服务器
Redis版本:5.0.7
目标:搭建1主+2从+3哨兵
2.准备Redis
# 将redis-5.0.7.tar.gz上传到/usr/local/software目录下
# 解压redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
# 进入文件夹
cd redis-5.0.7/
# 编译
make && make install
# 新建两个文件夹,分别放启动命令和配置文件
mkdir bin
mkdir conf
# 将命令和配置文件拷贝到上面两个目录
cp src/redis-server bin
cp src/redis-cli bin
cp src/redis-sentinel bin
cp redis.conf bin/redis.conf
cp sentinel.conf conf/
cp redis.conf conf/
3.配置Redis主服务器
cd conf
# 复制出一个主服务器的配置文件
cp redis.conf redis-master-6379.conf
# 修改redis-master-6379.conf,主要修改项如下:
bind 0.0.0.0
port 6379
daemonize yes
pidfile "/var/run/redis_6379.pid"
masterauth "123456"
requirepass "123456"
4.配置Redis从服务器
# 仅以其中一台为例,另外一台大同小异
# 复制出一个从服务器的配置文件
cp redis.conf redis-slave-6380.conf
# 修改redis-slave-6380.conf,主要修改项如下:
bind 0.0.0.0
port 6380
daemonize yes
pidfile "/var/run/redis_6380.pid"
replicaof 127.0.0.1 6379
masterauth "123456"
requirepass "123456"
5.配置Redis哨兵服务器
# 仅以其中一台为例,另外两台大同小异
cp sentinel.conf sentinel-26379.conf
# 修改sentinel-26379.conf,主要修改项如下:
port 26379
daemonize yes
pidfile "/var/run/redis-sentinel-26379.pid"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456
6.启动Redis服务器
# 启动1主2从服务器
bin/redis-server conf/redis-master-6379.conf
bin/redis-server conf/redis-slave-6380.conf
bin/redis-server conf/redis-slave-6381.conf
# 启动哨兵服务器
bin/redis-sentinel conf/sentinel-26379.conf
bin/redis-sentinel conf/sentinel-26380.conf
bin/redis-sentinel conf/sentinel-26381.conf
7.查看Redis进程
ps -ef | grep redis
bin/redis-cli -p 6379
127.0.0.1:6379> auth 123456
127.0.0.1:6379> info
# 结果:
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=2586706,lag=0
slave1:ip=127.0.0.1,port=6380,state=online,offset=2586972,lag=0
master_replid:dadaab2ed3e438e6b39743c011773a17bac6fe9f
master_replid2:e08112409c9f2042f65641905736d5767d97da5b
master_repl_offset:2586972
second_repl_offset:2571919
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1950541
repl_backlog_histlen:636432
8.关闭主服务器,查看效果
127.0.0.1:6379> shutdown
bin/redis-cli -p 6380
127.0.0.1:6380> auth 123456
127.0.0.1:6380> info
# 结果
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6381,state=online,offset=2615121,lag=1
master_replid:486a6a06dbf5268df7631b8f8ba2223ffd63013d
master_replid2:dadaab2ed3e438e6b39743c011773a17bac6fe9f
master_repl_offset:2615387
second_repl_offset:2613888
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2584941
repl_backlog_histlen:30447