阅读 648

搭建Redis主从集群+哨兵模式,实现Redis高可用不过如此

搭建Redis主从集群+哨兵模式架构,实现Redis高可用

这是我参与更文挑战的第15天,活动详情查看: 更文挑战

点赞是创作最好的鼓励!

环境说明

1主 , 2从 , 3哨兵

master(主):   	10.28.207.98:6379 

slave(从):	10.28.207.103:6380   10.28.207.221:6381

sentinel(哨兵):   10.28.207.98:26379  10.28.207.103:26380   10.28.207.221:26381
复制代码

部署Redis主节点(10.28.207.98:6379)

首先把redis安装包和tcl安装包拷贝到需要安装的服务器上

  1. 安装tcl(redis的依赖包)
cd /data/Software
tar -xzvf tcl8.6.1-src.tar.gz
cd tcl8.6.1/unix/
./configure
make
make install
复制代码
  1. 安装redis
cd /data/Software/
tar -zxvf redis-4.0.10.tar.gz
cd redis-4.0.10/
make
make test
make PREFIX=/data/redis-4.0.10-6379 install
复制代码
  1. 创建redis日志目录及日志文件
mkdir /data/redis-4.0.10-6379/logs
touch /data/redis-4.0.10-6379/logs/redis.log
复制代码
  1. 将redis.conf配置文件拷贝到redis安装目录下
cd /data/Software/redis-4.0.10/
cp redis.conf /data/redis-4.0.10-6379/bin/
复制代码
  1. 修改主redis配置文件
vim /data/redis-4.0.10-6379/bin/redis.conf
5.1、注释掉bind
#bind 127.0.0.1
5.2、修改主redis端口为6379
port 6379
5.3、修改保护模式
protected-mode yes
5.4、修改守护进程模式
daemonize yes
5.5、添加master密码
requirepass dataadmin
5.6、添加slave密码
masterauth dataadmin
5.7、修改redis日志输出目录(该地址为第三步创建的日志文件地址)
logfile "/data/redis-4.0.10-6379/logs/redis.log"
5.8、添加可允许写入时最大的延迟时间
min-slaves-max-lag 10
复制代码
  1. 启动主redis-6379
cd /data/redis-4.0.10-6379/bin/
./redis-server ./redis.conf
复制代码
  1. 查看redis启动日志
tail -100f ../logs/redis.log
复制代码
  1. 登录主redis-6379(注意:redis服务器在第五步配置文件上已经配置了密码, 其他的从服务器也是需要密码登录,密码为dataadmin)
./redis-cli -h 10.28.207.98 -p 6379
auth dataadmin
复制代码
  1. 测试redis是否可用(get name 可以获取到内容即说明部署成功且可用)
set name data
get name
复制代码
  1. 关闭redis-6379
./redis-cli -p 6379
auth dataadmin
shutdown
复制代码

分别158和159部署Redis 从节点(10.28.207.103:6380 、10.28.207.221:6381)

  1. 将10.28.207.98服务器上的主redis目录拷贝到103和221服务器上

  2. 修改103的从redis配置文件

vim /data/redis-4.0.10-6380/bin/redis.conf
2.1、修改从redis端口为6380
port 6380
2.2、修改从redis日志输出目录
logfile "/data/redis-4.0.10-6380/logs/redis.log"
2.3、添加slaveof从属关系(填写主服务器的ip和端口)
slaveof 10.28.207.98 6379
复制代码
  1. 修改221的从redis配置文件
vim /data/redis-4.0.10-6381/bin/redis.conf
3.1、修改从redis端口为6381
port 6381
3.2、修改从redis日志输出目录
logfile "/data/redis-4.0.10-6381/logs/redis.log"
3.3、添加slaveof从属关系
slaveof 10.28.207.98 6379
复制代码
  1. 登录主redis-6379
./redis-cli -h 10.28.207.98 -p 6379
auth dataadmin
从服务器启动和登录跟主服务器差别不大,只需要修改对应的服务器ip和端口即可
复制代码
  1. 查看主redis信息
info replication
	
如果看到类似如下信息即说明配置启动成功
connected_slaves:2   #连接的两个从服务器
slave0:ip=10.28.207.103,port=6380,state=online,offset=408296595,lag=1
slave1:ip=10.28.207.221,port=6381,state=online,offset=408296595,lag=1
复制代码
  1. 测试主redis是否可用
6.1、登录主redis-6379,并set一个phone的键值为123456
./redis-cli -h 10.28.207.98 -p 6379
auth dataadmin
set phone 123456
	
6.2、登录从redis-6380,并get出phone的键值
./redis-cli -h 10.28.207.103 -p 6380
auth dataadmin
get phone
	
6.3、登录从redis-6381,并get出phone的键值
./redis-cli -h 10.28.207.221 -p 6381
auth dataadmin
get phone
复制代码

如果在主redis上设置了phone值,然后再从服务器上可以获取值,即表明redis主从部署成功并可用!

部署三个sentinel(哨兵)

  1. 将sentinel.conf配置文件拷贝到主redis-6379目录下
cd /data/Software/redis-4.0.10/
cp sentinel.conf /data/redis-4.0.10-6379/bin/
复制代码
  1. 创建sentinel.log日志文件
touch /data/redis-4.0.10-6379/logs/sentinel.log
复制代码
  1. 修改sentinel(哨兵)配置文件
vim /data/redis-4.0.10-6379/bin/sentinel.conf
复制代码
  • 清空内容,替换成以下配置

#守护进程模式启动(允许后台启动)
daemonize yes
#保护模式(允许连接)
protected-mode no
#指定接收来自于该 IP 地址的请求(需要填写本机真实ip)
#bind 127.0.0.1
#当前Sentinel服务运行的端口
port 26379
# 哨兵监听的主服务器(2表示有两台从服务器)
sentinel monitor mymaster 10.28.207.98 6379 2
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
#sentinel日志
logfile "/data/redis-4.0.10-6379/logs/sentinel.log"
#master密码(如果redis配置了密码,这里必须要填,否则不能自动切换)
sentinel auth-pass mymaster dataadmin
#自定义配置结束
#end
复制代码
  1. 将10.28.207.98的sentinle.conf配置文件拷贝到103和221服务器该/data/redis-4.0.10-6380/bin目录上

  2. 103上创建sentinel.log日志文件

touch /data/redis-4.0.10-6380/logs/sentinel.log
复制代码
  1. 修改103上的哨兵配置文件sentinel.conf
vim /data/redis-4.0.10-6380/bin/sentinel.conf
6.1、修改sentinel的端口为26380
port 26380
6.2、修改sentinel日志输出目录
logfile "/data/redis-4.0.10-6380/logs/sentinel.log"
复制代码
  1. 221上创建sentinel.log日志文件
  touch /data/redis-4.0.10-6381/logs/sentinel.log
复制代码
  1. 修改221上的哨兵配置文件sentinel.conf
vim /data/redis-4.0.10-6381/bin/sentinel.conf
8.1、修改sentinel的端口为26381
port 26381
8.2、修改sentinel日志输出目录
logfile "/data/redis-4.0.10-6381/logs/sentinel.log"
复制代码

启动并测试三个sentinel(哨兵)

  1. 启动98上的哨兵sentinel-26379
cd /data/redis-4.0.10-6379/bin/
./redis-server ./sentinel.conf --sentinel
tail -100f ../logs/sentinel.log
复制代码

2.启动103上的哨兵sentinel-26380

cd /data/redis-4.0.10-6380/bin/
./redis-server ./sentinel.conf --sentinel
tail -100f ../logs/sentinel.log	
复制代码
  1. 启动221上的哨兵sentinel-26381
cd /data/redis-4.0.10-6381/bin/
./redis-server ./sentinel.conf --sentinel
tail -100f ../logs/sentinel.log	
复制代码
  1. 登录98上的哨兵sentinel-26379,查看监测到的其他哨兵
./redis-cli -h 10.28.207.98 -p 26379
sentinel sentinels mymaster			
复制代码

如果展现的信息上有显示配置的其余两个哨兵,即表明配置成功

文章分类
后端
文章标签