Redis哨兵集群搭建

Redis哨兵集群搭建

主机名IP地址角色
master10.206.0.4master
node110.206.0.8slave1
node210.206.0.5slave2

安装Redis5.0

配置主机名及域名解析
#所有节点操作

hostnamectl set-hostname master

hostnamectl set-hostname node1

hostnamectl set-hostname node2

vim /etc/hosts

10.206.0.4	master
10.206.0.8	node1
10.206.0.5	node2
同步时间
#所有节点
yum install ntpdate -y

ntpdate ntp1.aliyun.com
安装redis5.0
#所有节点操作
#上传redis-5.0.0.tar.gz

#解压到/usr/local/目录下
tar -zxvf redis-5.0.0.tar.gz -C /usr/local/

#编译安装
cd /usr/local/redis-5.0.0/

make

cd ./src && make install
修改redis.conf配置文件
#所有节点操作
#备份redis.conf文件
cp redis.conf redis.conf.bak

vim redis.conf

#修改配置项(所有节点均修改)
bind 0.0.0.0	

protected-mode no

requirepass "123456"				# 设置密码

masterauth p@ss1234					# 主服务器密码(避免挂掉后重启无法加入主从)

appendonly yes						# 开启持久化

#master将redis.conf配置文件发送到slave1,slave2
scp redis.conf root@10.206.0.8:/usr/local/redis-5.0.0/

scp redis.conf root@10.206.0.5:/usr/local/redis-5.0.0/

##从节点新增配置项
replicaof 10.206.0.4 6379 			# 此项配置IP为主节点IP,并且只在从节点配置

masterauth p@ss1234					# 主服务器密码

注意:
①其中masterauth和requirepass为设置的redis登录密码,和后面的sentinel.conf密码一致
②replicaof 10.206.0.4 6379只在从节点配置,主节点不配置;
修改sentinel.conf配置文件
#所有节点操作
#备份sentinel.conf文件
cp sentinel.conf sentinel.conf.bak

#创建日志目录以及工作目录
mkdir -p /data/redis/logs
mkdir -p /data/redis/data

vim sentinel.conf

#修改配置项(三节点配置一样)
port 26379
protected-mode no
daemonize yes 
pidfile /var/run/redis/redis-sentinel.pid 
logfile /data/redis/logs/sentinel.log 
dir /data/redis/data/ 
sentinel monitor mymaster 10.206.0.4 6379 2
sentinel auth-pass mymaster p@ss1234
启动Redis服务
#所有节点操作
#切换到src目录
cd /usr/local/redis-5.0.0/src

#启动命令
./redis-server ../redis.conf &					#注:启动顺序master > slave1 > slave2

#查看进程确认启动成功
ps -ef | grep redis
查看主从信息
#master主机进入redis查看主从信息
./redis-cli -h 10.206.0.4 -p 6379

#输入密码
10.206.0.4:6379> auth p@ss1234
OK

#查看主从信息
10.206.0.4:6379> info replication
# Replication
role:master																		#角色
connected_slaves:2																#slave数量
slave0:ip=10.206.0.8,port=6379,state=online,offset=114654,lag=1					#slave1信息
slave1:ip=10.206.0.5,port=6379,state=online,offset=114654,lag=1					#slave2信息
master_replid:857391bc429c32ceb1e55fdde7297cdec1b6d31d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:114654
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:114654
启动sentinel服务
#所有节点操作
#切换到src目录
cd /usr/local/redis-5.0.0/src

#启动命令
./redis-sentinel ../sentinel.conf				#注:启动顺序master > slave1 > slave2

#查看进程
ps -ef | grep sentinel

模拟测试

在master节点查看redis进程,执行kill命令使redis服务挂掉

#查看master节点redis服务进程
ps -ef | grep redis
root      8779 11034  0 15:15 pts/1    00:00:00 ./redis-server *:6379
root      8821     1  0 15:15 ?        00:00:00 ./redis-sentinel *:26379 [sentinel]
root     11194 11034  0 15:32 pts/1    00:00:00 grep --color=auto redis

#执行kill命令杀掉进程
kill -9 8779

查看slave1 Replication

#进入redis
./redis-cli -h 10.206.0.8 -p 6379

#输入密码
10.206.0.8:6379> auth p@ss1234
OK

#查看Replication
10.206.0.8:6379> info Replication
# Replication
role:master									#master已经切换到10.206.0.8上面
connected_slaves:1							#slave数量只剩一个
slave0:ip=10.206.0.5,port=6379,state=online,offset=257421,lag=0
master_replid:41333f072d2c54dd920d93b1dd3da546ce4c86a9
master_replid2:857391bc429c32ceb1e55fdde7297cdec1b6d31d
master_repl_offset:257421
second_repl_offset:229528
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:257421

启动挂掉的master上的redis服务,查看Replication

#挂掉的master操作
#启动redis服务
./redis-server ../redis.conf &

#查看redis进程
ps -ef | grep redis

查看slave1 Replication

#查看Replication

10.206.0.8:6379> info Replication
# Replication
role:master									#master已经切换到10.206.0.8上面
connected_slaves:2							#slave数量变成2个
slave0:ip=10.206.0.5,port=6379,state=online,offset=355358,lag=1
slave1:ip=10.206.0.4,port=6379,state=online,offset=355358,lag=0			#挂掉的master启动服务后自动变成slave
master_replid:41333f072d2c54dd920d93b1dd3da546ce4c86a9
master_replid2:857391bc429c32ceb1e55fdde7297cdec1b6d31d
master_repl_offset:355358
second_repl_offset:229528
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:355358
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值