Redis---主从复制&高可用

Redis—主从复制&高可用

1.部署redis

redis安装:

tar zxf redis-5.0.3.tar.gz 
cd redis-5.0.3
yum install gcc -y
make
make install

执行redis安装脚本:

cd utils/
./install_server.sh	#一路回车
netstat -antlp

修改端口使其他主机可访问:

vim /etc/redis/6379.conf 
  70 bind 0.0.0.0

/etc/init.d/redis_6379 restart	#重启redis
netstat -antlp

在这里插入图片描述
在server1添加key-value值:

redis-cli
127.0.0.1:6379> set name nigar
OK
127.0.0.1:6379> get name
"nigar"

在这里插入图片描述

2.redis主从复制

server1---master
server2---slave

step1 在server2中安装redis:

scp redis-5.0.3 server2:/root	#在server1中把解压好的目录发给server2

在server2中:

make install

step2 执行redis安装脚本:

cd utils/
./install_server.sh 
netstat -antlp

step3 修改配置文件:

vim /etc/redis/6379.conf 
  70 bind 0.0.0.0

1379 slaveof 172.25.254.1 6379

/etc/init.d/redis_6379 restart	#重启redis
netstat -antlp

在这里插入图片描述
step4 测试:
在server2查看:

redis-cli
127.0.0.1:6379> get name	#可以看到刚在server1中添加的信息
"nigar"
127.0.0.1:6379> set age 20	#无法添加信息
(error) READONLY You can't write against a read only replica.
127.0.0.1:6379> 

在这里插入图片描述

3.redis高可用

首先配置好server1和server3之间的主从复制:(和上一步骤相同)
server1---master
server3---slave

step1 在server2中安装redis:

scp redis-5.0.3 server3:/root	#在server1中把解压好的目录发给server3

在server3中:

make install

step2 执行redis安装脚本:

cd utils/
./install_server.sh 
netstat -antlp

step3 修改配置文件:

vim /etc/redis/6379.conf 
  70 bind 0.0.0.0

1379 slaveof 172.25.254.1 6379

/etc/init.d/redis_6379 restart	#重启redis
netstat -antlp

step4 测试:
在server3查看:

redis-cli
127.0.0.1:6379> get name
"nigar"
127.0.0.1:6379> set age 20
(error) READONLY You can't write against a read only replica.
127.0.0.1:6379> 

在这里插入图片描述
这样三台redis的主从复制就实现了

在master中写入切换策略:

cd redis-5.0.3
ls
cp sentinel.conf /etc/redis
cd /etc/redis/
vim sentinel.conf 
修改如下内容:
 17 protected-mode no	#关闭保护模式

121 sentinel monitor mymaster 172.25.254.1 6379 2
#指定要监控的master,mymaster是定义的master名字,quorum为法定票数2,此处指的是sentinel的数, 只有指定的sentinel同意时才认为sentinel做的决策是有效的,一般大于sentinel数量的半数。可以有多个master,一组sentinel集群可以监控N个主从复制架构 

146 sentinel down-after-milliseconds mymaster 10000
#至少多长时间连不上才认为master离线了。单位为ms,即连接超时时长(这里我设置为10秒) 

修改完成后发送给两个slave节点:

scp sentinel.conf  server2:/etc/redis
scp sentinel.conf  server3:/etc/redis

测试:
在三个redis上分别开启监控:

redis-server /etc/redis/sentinel.conf --sentinel

在这里插入图片描述
再开启一个shell连接server1查看信息:

redis-cli
127.0.0.1:6379> info	#可以看到此是sercer1为master

在这里插入图片描述

redis-cli -p 26379
127.0.0.1:26379> info	#可以看到监控信息

在这里插入图片描述
手动宕掉master的redis:

redis-cli
127.0.0.1:6379> SHUTDOWN

在这里插入图片描述
等待10s后,在监控页面可以看到:server1宕掉,而server3变成新的master的信息
在这里插入图片描述
再开启一个shell连接server3查看信息:

redis-cli
127.0.0.1:6379> info	#可以看到此时server3为master,而server2为slave

在这里插入图片描述

redis-cli	#可以添加信息
127.0.0.1:6379> get name
"nigar"
127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> get age
"20"

在这里插入图片描述

4.解读6379.conf 文件中部分参数信息

vim 6379.conf 
由下至上看:表示内存到磁盘刷新数据的频率
219 一个键发生变化时 900秒会更新
220 10个键发生变化时 300秒会更新
221 一万个键发生变化时 60秒会更新
每60s,先看有没有10000个键发生变化,如果有就更新;
如果没有,300秒后看有没有10个键发生变化,如果有就更新;
如果没有,900秒后看有没有1个键发生变化,如果有就更新

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值