一, 安装 Redis
首先下载 Redis 安装包
- [[email protected] yasuobao]# pwd
- /root/yasuobao
- [[email protected] yasuobao]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解压
[[email protected] yasuobao]# tar -zxvf Redis-5.0.5.tar.gz
下载 gcc,c
[[email protected] yasuobao]# yum install gcc c -y
编译
- [[email protected] yasuobao]# cd Redis-5.0.5
- [[email protected] 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
- [[email protected] Redis-5.0.5]# make && make install
- [[email protected] Redis-5.0.5]# make install PREFIX=/usr/local/Redis
拷贝配置文件
- [[email protected] Redis-5.0.5]# cp ./Redis.conf /usr/local/Redis/bin
- [[email protected] Redis-5.0.5]# cd /usr/local/Redis/bin
测试 Redis
[[email protected] bin]# ./Redis-server
回到解压目录 utils 里
- [[email protected] bin]# cd /root/yasuobao/Redis-5.0.5/utils
- [[email protected] utils]# ./install-server.sh
二, Redis 的主从复制
注释 bind 127.0.0.1
在配置文件 Redis.conf 中, 默认的 bind 接口是 127.0.0.1, 也就是本地回环地址. 这样的话, 访问 Redis 服务只能通过本机的客户端连接, 而无法通过远程连接, 这样可以避免将 Redis 服务暴露于危险的网络环境中, 防止一些不安全的人随随便便通过远程, 但是我们做主从复制.
但是搭建主从复制, 需要另一台 Redis 端连接到本机, 所以要将其注释.
- [[email protected] utils]# cd /etc/Redis/
- [[email protected] Redis]# ls
- 6379.conf sentinel.conf
- [[email protected] 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 / 下
- [[email protected] Redis-5.0.5]# cp sentinel.conf /etc/Redis/
- [[email protected] Redis-5.0.5]# cd /etc/Redis/
- [[email protected] Redis]# ls
- 6379.conf sentinel.conf
关闭保护模式
[[email protected] 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
可以看到主已经切换了, 如此便实现了高可用
来源: http://www.bubuko.com/infodetail-3105942.html