码迷,mamicode.com
首页 > 其他好文 > 详细

配置redis主从复制、高可用集群

时间:2019-06-27 21:54:53      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:编译   默认   状态   replica   表示   防止   auto   vim   错误   

一、安装redis
首先下载redis安装包

[root@mymaster yasuobao]# pwd
/root/yasuobao
[root@mymaster yasuobao]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz

解压
[root@mymaster yasuobao]# tar -zxvf redis-5.0.5.tar.gz
下载gcc、c
[root@mymaster yasuobao]# yum install gcc c -y
编译

[root@mymaster yasuobao]# cd redis-5.0.5
[root@mymaster redis-5.0.5]# ls
00-RELEASENOTES  CONTRIBUTING  deps     Makefile   README.md   runtest          runtest-moduleapi  sentinel.conf  tests
BUGS             COPYING       INSTALL  MANIFESTO  redis.conf  runtest-cluster  runtest-sentinel   src            utils
[root@mymaster redis-5.0.5]# make && make install 
[root@mymaster redis-5.0.5]# make install PREFIX=/usr/local/redis

拷贝配置文件

[root@mymaster redis-5.0.5]# cp ./redis.conf /usr/local/redis/bin
[root@mymaster redis-5.0.5]# cd /usr/local/redis/bin

测试redis
[root@mymaster bin]# ./redis-server
技术图片
回到解压目录utils里

[root@mymaster bin]# cd /root/yasuobao/redis-5.0.5/utils
[root@mymaster utils]# ./install-server.sh

技术图片

二、redis的主从复制

注释bind 127.0.0.1

在配置文件redis.conf中,默认的bind 接口是127.0.0.1,也就是本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接,这样可以避免将redis服务暴露于危险的网络环境中,防止一些不安全的人随随便便通过远程,但是我们做主从复制。

但是搭建主从复制,需要另一台redis端连接到本机,所以要将其注释。

[root@mymaster utils]# cd /etc/redis/
[root@mymaster redis]# ls
6379.conf  sentinel.conf
[root@mymaster redis]# vim 6379.conf

技术图片

关闭保护模式
技术图片

另一台redis端(从)在其配置文件做同样操作,并且需要指定master端ip和端口

技术图片
如上操作所示,已经完成redis的主从复制,测试:在master端 set name lxc,slave查看
技术图片
slave:
技术图片

至此,完成主从复制。

三、redis的高可用

高可用原理:

自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

配置环境:三台虚拟机安装 redis 服务

mymaster:172.18.74.59
myslave:172.18.74.119
myslave02:172.18.74.87

按主从复制先配置好一主两从
在安装包中将 sentinel 文件复制到/etc/redis/下

[root@mymaster redis-5.0.5]# cp sentinel.conf /etc/redis/
[root@mymaster redis-5.0.5]# cd /etc/redis/
[root@mymaster redis]# ls
6379.conf  sentinel.conf

关闭保护模式
[root@mymaster redis]# vim sentinel.conf
技术图片

配置指示 Sentinel 去监视一个名为 mymaster 的主服务器,这个主服务器的IP 地址为 172.18.74.59,端口号为 6379 ,而将这个主服务器判断为失效至少需要 2 个 Sentinel 同意(只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)

技术图片

down-after-milliseconds 选项指定了 Sentinel 认为服务器已经断线所需的毫秒数。如果服务器在给定的毫秒数之内, 没有返回 Sentinel 发送的 PING 命令的回复, 或返回一个错误, 那么 Sentinel 将这个服务器标记为主观下线

技术图片

完成后将 sentinel 配置文件发送 两个从节点

scp  /etc/redis/sentinel.conf 172.18.74.119:/etc/redis/
scp  /etc/redis/sentinel.conf 172.18.74.87:/etc/redis/

把redis命令加入环境变量
export PATH=$PATH:/usr/local/redis/bin
刷新profile
source /etc/profile

三台服务器按主从顺序启动reids

redis-server /etc/reids/6379.conf
redis-sentinel /etc/redis/sentinel.conf &

mymaster
技术图片

myslave
技术图片

myslave02

技术图片

然后在查看mymaster
技术图片
会发现多了几条信息
+slave 表示 :一个新的从服务器已经被 Sentinel 识别并关联。可以看到片此时 master 是 172.18.74.59;172.18.74.119 和 172.18.74.87 是 slave。
测试:master 端 和slave端 info 查看 replication 信息:
mymaster
技术图片
下拉

技术图片

myslave

技术图片

myslave02

技术图片

然后把mymaster的redis的相关服务关闭
技术图片

在myslave上看到有提示信息,把自己变为master把原来的master变为slave
技术图片
+switch-master :配置变更,主服务器的 IP 和地址已经改变。
+sdown :给定的实例 mymaster现在处于主观下线状态。
查看一下,myslave的info
技术图片
可以看到主已经切换了,如此便实现了高可用

配置redis主从复制、高可用集群

标签:编译   默认   状态   replica   表示   防止   auto   vim   错误   

原文地址:https://blog.51cto.com/13670314/2414540

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!